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原理:
客官看完了業(yè)界常用的獲取用戶真實IP方法后,發(fā)現(xiàn)有個共同規(guī)律,主要核心就是
HTTP_CLIENT_IP
HTTP_X_FORWARDED_FOR
REMOTE_ADDR
不同的演變,只是代碼兼容性罷了!
如何模擬用戶真實IP?
問:如果可以偽造模擬HTTP_CLIENT_IP,偽造模擬HTTP_X_FORWARDED_FOR,偽造模擬REMOTE_ADDR,不就可以達到追蹤不到用戶真實IP的目的了么?
答:樓上理解完全正確!如果做到這樣完全可以通殺99%的獲取用戶真實IP,以用戶IP為標識的系統(tǒng)!
支招【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),
));//優(yōu)點:偽造成本低,通殺90%系統(tǒng)
如何模擬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),
));//優(yōu)點:偽造成本低,通殺90%系統(tǒng)
如何模擬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更佳!
//優(yōu)點:通殺100%系統(tǒng)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Laravel獲取所有的數(shù)據(jù)庫表及結(jié)構(gòu)的方法
今天小編就為大家分享一篇Laravel獲取所有的數(shù)據(jù)庫表及結(jié)構(gòu)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10PHP 獲取MSN好友列表的代碼(2009-05-14測試通過)
感謝druggo提供代碼 放到首頁只是覺得值得大家研究 等有機會把這代碼裝成jsp的2009-09-09PHP多線程批量采集下載美女圖片的實現(xiàn)代碼(續(xù))
之前寫過一篇《PHP批量采集下載美女圖片》文中主要采用file_get_content做采集圖片,今天發(fā)現(xiàn)采集了400張圖片 居然需要70分鐘以上,真是難以忍受2013-06-06