今天就是讲给REMOTE_ADDR不可以伪造的,就在curl 中也无法伪造 相对是比较安全的服务端ip获取方法,当然,也有可能被路由伪造 这个不好说,因为REMOTE_ADDR 是底层的回话ip地址,路由是可以发起伪造。所以,网上很多人都在问这个问题,也有很多人不死心,但现实确实是残酷的 也是完美的给个演示案例你吧:你就信了1.将以下代码保存为 Client.php //php脚本开始
<?php
$ch = curl_init();
$url = "http://localhost/ser.php";
$header = array( 'CLIENT-IP:208.165.188.175', 'X-FORWARDED-FOR:208.165.188.175, );
//声明伪造head请求头
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
$page_content = curl_exec($ch); curl_close($ch);
echo $page_content;?>2.将以下文件保存为ser.php//php脚本开始
<?php
echo getenv('HTTP_CLIENT_IP');
echo getenv('HTTP_X_FORWARDED_FOR');
echo getenv('REMOTE_ADDR');
?>3.运行结果//html脚本开始
208.165.188.175
208.165.188.175
127.0.0.1
//上面结果可看出,http_client_ip,http_x_forwarded_for 都被伪造了
而remote_addr 还是127.0.0.1 就是客户端ip4.附上PHP获取IP地址函数function get_real_ip($type = 0,$adv=false) {
$type = $type ? 1 : 0;
static $ip = NULL;
if ($ip !== NULL) return $ip[$type];
if($adv){
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$pos = array_search('unknown',$arr);
if(false !== $pos) unset($arr[$pos]);
$ip = trim($arr[0]);
}elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
}elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
// IP地址合法验证
$long = sprintf("%u",ip2long($ip));
$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
return $ip[$type];
}
function ip()
{
$ip_long = array(
array('607649792', '608174079'),
array('1038614528', '1039007743'),
array('1783627776', '1784676351'),
array('2035023872', '2035154943'),
array('2078801920', '2079064063'),
array('-1950089216', '-1948778497'),
array('-1425539072', '-1425014785'),
array('-1236271104', '-1235419137'),
array('-770113536', '-768606209'),
array('-569376768', '-564133889'),
);
$rand_key = mt_rand(0, 9);
return $ip = long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
}
评论
172条评论思念 Lv.1
Chrome 111.0.0.0
Windows 回复
河南省郑州市 电信
18045757615 Lv.1
Chrome 108.0.5359.95
Windows 7 x64 Edition 回复
感谢楼主
,好人一生平安
云南省昭通市 联通
1 Lv.1
Chrome 111.0.0.0
Windows 回复
很棒!
河南省驻马店市 联通
dadad Lv.1
Chrome 109.0.0.0
Windows 回复
丢你鸽嘿
广东省佛山市南海区 联通
2546124371 Lv.1
Internet Explorer
iPhone iOS 16.3 回复
666
广西玉林市 电信
67575 Lv.1
Chrome 87.0.4280.141
Android 13 回复
收拾书包睡吧睡吧睡吧睡吧
广西 联通
a Lv.1
Firefox 111.0
Windows 7 x64 Edition 回复
阿猪66
河南省郑州市 联通
优游卒岁 Lv.1
Chrome 101.0.4951.74
Android 13 回复
你好你好
广西河池市 联通
dhrt Lv.1
Chrome 110.0.0.0
Windows 回复
感谢楼主表情,好人一生平安感谢楼主表情,好人一生平安感谢楼主表情,好人一生平安
湖北省宜昌市 联通
yifei Lv.1
Chrome 110.0.0.0
Windows 回复
河南省郑州市 联通