PHP获取真实IP及IP模拟方法解析

PHP获取用户真实IP方法1:

<?php
function GetIP(){
if(!empty($_SERVER[\"HTTP_CLIENT_IP\"])){
 $cip = $_SERVER[\"HTTP_CLIENT_IP\"];
}
elseif(!empty($_SERVER[\"HTTP_X_FORWARDED_FOR\"])){
 $cip = $_SERVER[\"HTTP_X_FORWARDED_FOR\"];
}
elseif(!empty($_SERVER[\"REMOTE_ADDR\"])){
 $cip = $_SERVER[\"REMOTE_ADDR\"];
}
else{
 $cip = \"无法获取!\";
}
return $cip;
}
echo GetIP();
?> 

PHP获取用户真实IP方法2:

<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($HTTP_SERVER_VARS[\"HTTP_X_FORWARDED_FOR\"]){
$ip = $HTTP_SERVER_VARS[\"HTTP_X_FORWARDED_FOR\"];
}
elseif($HTTP_SERVER_VARS[\"HTTP_CLIENT_IP\"]){
$ip = $HTTP_SERVER_VARS[\"HTTP_CLIENT_IP\"];
}
elseif ($HTTP_SERVER_VARS[\"REMOTE_ADDR\"]){
$ip = $HTTP_SERVER_VARS[\"REMOTE_ADDR\"];
}
elseif (getenv(\"HTTP_X_FORWARDED_FOR\")){
$ip = getenv(\"HTTP_X_FORWARDED_FOR\");
}
elseif (getenv(\"HTTP_CLIENT_IP\")){
$ip = getenv(\"HTTP_CLIENT_IP\");
}
elseif (getenv(\"REMOTE_ADDR\")){
$ip = getenv(\"REMOTE_ADDR\");
}
else{
$ip = \"Unknown\";
}
echo $ip;
?>

PHP获取用户真实IP方法3:

<?php
$iipp = $_SERVER[\"REMOTE_ADDR\"];
echo $iipp ;
?>

PHP获取用户真实IP方法4:

<?php
$user_IP = ($_SERVER[\"HTTP_VIA\"]) ? $_SERVER[\"HTTP_X_FORWARDED_FOR\"] : $_SERVER[\"REMOTE_ADDR\"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER[\"REMOTE_ADDR\"];
echo $user_IP
?>

PHP获取用户真实IP方法5:

<?php
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER[\"HTTP_CLIENT_IP\"])){
 $ip = $_SERVER[\"HTTP_CLIENT_IP\"];
}
if (!empty($_SERVER[\'HTTP_X_FORWARDED_FOR\'])){
 $ips = explode (\", \", $_SERVER[\'HTTP_X_FORWARDED_FOR\']);
 if($ip){
  array_unshift($ips, $ip); $ip = FALSE;
 }
 for($i = 0; $i < count($ips); $i++){
  if (!eregi (\"^(10|172\\.16|192\\.168)\\.\", $ips[$i])){
  $ip = $ips[$i];
  break;
  }
 }
}
return($ip ? $ip : $_SERVER[\'REMOTE_ADDR\']);
}
echo get_real_ip();
?>

PHP获取用户真实IP方法6:

<?php
if(getenv(\'HTTP_CLIENT_IP\')){
$onlineip = getenv(\'HTTP_CLIENT_IP\');
}
elseif(getenv(\'HTTP_X_FORWARDED_FOR\')){
$onlineip = getenv(\'HTTP_X_FORWARDED_FOR\');
}
elseif(getenv(\'REMOTE_ADDR\')){
$onlineip = getenv(\'REMOTE_ADDR\');
}
else{
$onlineip = $HTTP_SERVER_VARS[\'REMOTE_ADDR\'];
}
echo $onlineip;
?> 

获取用户真实IP原理:

客官看完了业界常用的获取用户真实IP方法后,发现有个共同规律,主要核心就是

HTTP_CLIENT_IP
HTTP_X_FORWARDED_FOR
REMOTE_ADDR

不同的演变,只是代码兼容性罢了!

如何模拟用户真实IP?

问:如果可以伪造模拟HTTP_CLIENT_IP,伪造模拟HTTP_X_FORWARDED_FOR,伪造模拟REMOTE_ADDR,不就可以达到追踪不到用户真实IP的目的了么?

答:楼上理解完全正确!如果做到这样完全可以通杀99%的获取用户真实IP,以用户IP为标识的系统!

支招【LET采集技巧】(curl、socket、fsocketopen、stream_socket_client):

如何模拟HTTP_CLIENT_IP?HTTP_CLIENT_IP可以模拟么?伪装HTTP_CLIENT_IP!

curl_setopt($curl, CURLOPT_HTTPHEADER, array (
\’Client_Ip: \’.mt_rand(0, 255).\’.\’.mt_rand(0, 255).\’.\’.mt_rand(0, 255).\’.\’.mt_rand(0, 255),
));//优点:伪造成本低,通杀90%系统

如何模拟HTTP_X_FORWARDED_FOR?HTTP_X_FORWARDED_FOR可以模拟么?伪装HTTP_X_FORWARDED_FOR!

curl_setopt($curl, CURLOPT_HTTPHEADER, array (
\’X-Forwarded-For: \’.mt_rand(0, 255).\’.\’.mt_rand(0, 255).\’.\’.mt_rand(0, 255).\’.\’.mt_rand(0, 255),
));//优点:伪造成本低,通杀90%系统

如何模拟REMOTE_ADDR?REMOTE_ADDR可以模拟么?伪装REMOTE_ADDR!

curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($curl, CURLOPT_PROXY, \’1.1.1.1:8080\’);//自行百度获得普匿代理IP即可,高匿代理IP更佳!
//优点:通杀100%系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容