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

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

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

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. }
  6. elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
  7. $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
  8. }
  9. elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
  10. $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
  11. }
  12. elseif (getenv("HTTP_X_FORWARDED_FOR")){
  13. $ip = getenv("HTTP_X_FORWARDED_FOR");
  14. }
  15. elseif (getenv("HTTP_CLIENT_IP")){
  16. $ip = getenv("HTTP_CLIENT_IP");
  17. }
  18. elseif (getenv("REMOTE_ADDR")){
  19. $ip = getenv("REMOTE_ADDR");
  20. }
  21. else{
  22. $ip = "Unknown";
  23. }
  24. echo $ip;
  25. ?>

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

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

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

获取用户真实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%系统

更多相关文章

  1. PHP获取真实IP及IP模拟方法解析
  2. 访问器属性与获取dom元素方法学习
  3. 如何使用arm-eabi-gdb调试android c/c++程序
  4. Android(安卓)打开相机、相册获取图片文件,支持Android(安卓)9.0
  5. android 项目中规范使用SharedPreferences
  6. Android调用getSimSerialNumber获取iccid不完整
  7. android低功耗蓝牙APP开发问题记录
  8. 获取Android设备的方向
  9. Android获取屏幕的宽和高

随机推荐

  1. 尽管“SQL语法错误”消息仍然成功执行
  2. 使用mysql验证在php中登录表单
  3. php学习笔记四:使用 xampp-部署php网站
  4. JRoute::_() -函数在哪里?在joomla
  5. 如何在角度js中获取url参数
  6. Wordpress主题调试:插件侧边栏导致原始侧
  7. 使用jquery和php手动在数据库中增加一个
  8. 为什么foreach在循环中不修改数组时要复
  9. 如何在Laravel 5表单请求中使用请求路由
  10. ThinkPHP5开发Api接口简单实例