今天就是讲给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 回复
好
四川省 移动
A阿诺. Lv.1
Chrome 86.0.4240.198
Windows 7 x64 Edition 回复
你把福娃乏味
河北省沧州市 联通
山海 Lv.1 回复
哈哈哈,感谢
中国 移动
a以苏H.星漫阁 Lv.1 回复
很好
四川省广安市 广电网
1111111 Lv.1
Chrome 70.0.3538.25
Windows 7 x64 Edition 回复
爱是飒飒飒飒
广西南宁市 电信
清风与烈酒 Lv.1
Safari 14.0.3
Mac OS X 10.15.6 回复
很香看看,需要这个
湖南省衡阳市 电信
九九网络 Lv.1
Chrome 83.
Android 10 回复
试试
中国 移动
÷ Lv.1
Chrome 70.0.3538.102
Windows 回复
北京市 联通
撒旦 Lv.1
Chrome 75.0.3770.100
Windows 回复
可可以
四川省成都市 电信
pony Lv.2
Chrome 88.0.4324.182
Windows 回复
牛逼牛逼
中国 移动