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

吾爱主题 阅读:159 2021-10-29 16:10:00 评论:0

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

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?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:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <?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:

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

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

?
1 2 3 4 5 <?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:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <?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:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?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%系统

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

原文链接:https://www.cnblogs.com/ghjbk/p/7728144.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容