1.获取ip
public function getIp(){
if (!empty($_SERVER["HTTP_CLIENT_IP"]) && strcasecmp($_SERVER["HTTP_CLIENT_IP"], "unknown")) {
$ip = $_SERVER["HTTP_CLIENT_IP"];
} else {
if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]) && strcasecmp($_SERVER["HTTP_X_FORWARDED_FOR"], "unknown")) {
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else {
if (!empty($_SERVER["REMOTE_ADDR"]) && strcasecmp($_SERVER["REMOTE_ADDR"], "unknown")) {
$ip = $_SERVER["REMOTE_ADDR"];
} else {
if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'],
"unknown")
) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
$ip = "unknown";
}
}
}
}
return ($ip);
}
curl伪造IP请求:
$ch = curl_init('http://localhost/ip.php');
//通用设置
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//不直接输出
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//跟踪重定向
//伪造请求头
$ip = mt_rand(1, 255) . '.' . mt_rand(1, 255) . '.' . mt_rand(1, 255) . '.' . mt_rand(1, 255);
$header = [
'CLIENT-IP: ' . $ip,
'X-FORWARDED-FOR: ' . $ip,
'X-REAL-IP: ' . $ip,
'Accept-Language: zh-CN,zh;',
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$html = curl_exec($ch);
curl_close($ch);
echo $html;
本文介绍了一种使用PHP获取客户端真实IP地址的方法,通过检查HTTP头部信息来确保准确性。此外,还展示了如何利用CURL发送带有伪造IP地址的HTTP请求,这对于测试和调试网络应用非常有用。

859

被折叠的 条评论
为什么被折叠?



