当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-04-01 09:19:35 浏览: 评论:0 

这篇文章主要介绍了PHP获取真实IP及IP模拟方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。

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

  1. <?php 
  2. function GetIP(){ 
  3. if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])){ 
  4.  $cip = $_SERVER["HTTP_CLIENT_IP"]; 
  5. elseif(!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"])){ 
  6.  $cip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
  7. elseif(!emptyempty($_SERVER["REMOTE_ADDR"])){ 
  8.  $cip = $_SERVER["REMOTE_ADDR"]; 
  9. else
  10.  $cip = "无法获取!"
  11. return $cip
  12. echo GetIP(); 
  13. ?> 

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

  1. <?php 
  2. error_reporting (E_ERROR | E_WARNING | E_PARSE); 
  3. if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){ 
  4. $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; 
  5. elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){ 
  6. $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]; 
  7. elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){ 
  8. $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; 
  9. elseif (getenv("HTTP_X_FORWARDED_FOR")){ 
  10. $ip = getenv("HTTP_X_FORWARDED_FOR"); 
  11. elseif (getenv("HTTP_CLIENT_IP")){ 
  12. $ip = getenv("HTTP_CLIENT_IP"); 
  13. elseif (getenv("REMOTE_ADDR")){ 
  14. $ip = getenv("REMOTE_ADDR"); 
  15. else
  16. $ip = "Unknown"
  17. echo $ip
  18. ?> 

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

  1. <?php 
  2. $iipp = $_SERVER["REMOTE_ADDR"]; 
  3. echo $iipp ; 
  4. ?> 

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

  1. <?php 
  2. $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; 
  3. $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; 
  4. echo $user_IP 
  5. ?> 

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

  1. <?php 
  2. function get_real_ip() 
  3. $ip=false; 
  4. if(!emptyempty($_SERVER["HTTP_CLIENT_IP"])){ 
  5.  $ip = $_SERVER["HTTP_CLIENT_IP"]; 
  6. if (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])){ 
  7.  $ips = explode (", "$_SERVER['HTTP_X_FORWARDED_FOR']); 
  8.  if($ip){ 
  9.   array_unshift($ips$ip); $ip = FALSE; 
  10.  } 
  11.  for($i = 0; $i < count($ips); $i++){ 
  12.   if (!eregi ("^(10|172\.16|192\.168)\."$ips[$i])){ 
  13.   $ip = $ips[$i]; 
  14.   break
  15.   } 
  16.  } 
  17. return($ip ? $ip : $_SERVER['REMOTE_ADDR']); 
  18. echo get_real_ip(); 
  19. ?> 

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

  1. <?php 
  2. if(getenv('HTTP_CLIENT_IP')){ 
  3. $onlineip = getenv('HTTP_CLIENT_IP'); 
  4. elseif(getenv('HTTP_X_FORWARDED_FOR')){ 
  5. $onlineip = getenv('HTTP_X_FORWARDED_FOR'); 
  6. elseif(getenv('REMOTE_ADDR')){ 
  7. $onlineip = getenv('REMOTE_ADDR'); 
  8. else
  9. $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR']; 
  10. echo $onlineip
  11. ?> 

获取用户真实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!

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

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

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

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

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

Tags: PHP获取真实IP

分享到: