PHP獲取真實(shí)IP及IP模擬方法解析
PHP獲取用戶真實(shí)IP方法1:
<?phpfunction 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獲取用戶真實(shí)IP方法2:
<?phperror_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獲取用戶真實(shí)IP方法3:
<?php$iipp = $_SERVER['REMOTE_ADDR'];echo $iipp ;?>
PHP獲取用戶真實(shí)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獲取用戶真實(shí)IP方法5:
<?phpfunction 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獲取用戶真實(shí)IP方法6:
<?phpif(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;?>
獲取用戶真實(shí)IP原理:
客官看完了業(yè)界常用的獲取用戶真實(shí)IP方法后,發(fā)現(xiàn)有個(gè)共同規(guī)律,主要核心就是
HTTP_CLIENT_IPHTTP_X_FORWARDED_FORREMOTE_ADDR
不同的演變,只是代碼兼容性罷了!
如何模擬用戶真實(shí)IP?
問:如果可以偽造模擬HTTP_CLIENT_IP,偽造模擬HTTP_X_FORWARDED_FOR,偽造模擬REMOTE_ADDR,不就可以達(dá)到追蹤不到用戶真實(shí)IP的目的了么?
答:樓上理解完全正確!如果做到這樣完全可以通殺99%的獲取用戶真實(shí)IP,以用戶IP為標(biāo)識(shí)的系統(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)點(diǎn):偽造成本低,通殺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)點(diǎn):偽造成本低,通殺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)點(diǎn):通殺100%系統(tǒng)
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
