PHP獲取用戶(hù)真實(shí)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 = "無(wú)法獲??!";
}
return $cip;
}
echo GetIP();
?>
PHP獲取用戶(hù)真實(shí)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獲取用戶(hù)真實(shí)IP方法3:
?php
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp ;
?>
PHP獲取用戶(hù)真實(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獲取用戶(hù)真實(shí)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獲取用戶(hù)真實(shí)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;
?>
獲取用戶(hù)真實(shí)IP原理:
客官看完了業(yè)界常用的獲取用戶(hù)真實(shí)IP方法后,發(fā)現(xiàn)有個(gè)共同規(guī)律,主要核心就是
HTTP_CLIENT_IP
HTTP_X_FORWARDED_FOR
REMOTE_ADDR
不同的演變,只是代碼兼容性罷了!
如何模擬用戶(hù)真實(shí)IP?
問(wèn):如果可以偽造模擬HTTP_CLIENT_IP,偽造模擬HTTP_X_FORWARDED_FOR,偽造模擬REMOTE_ADDR,不就可以達(dá)到追蹤不到用戶(hù)真實(shí)IP的目的了么?
答:樓上理解完全正確!如果做到這樣完全可以通殺99%的獲取用戶(hù)真實(shí)IP,以用戶(hù)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)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- php判斷IP地址是否在多個(gè)IP段內(nèi)
- php實(shí)現(xiàn)統(tǒng)計(jì)IP數(shù)及在線人數(shù)的示例代碼
- bt寶塔面板php7.3、php7.4不支持ZipArchive解決方法
- 通過(guò)PHP實(shí)現(xiàn)獲取訪問(wèn)用戶(hù)IP
- PHP Pipeline 實(shí)現(xiàn)中間件的示例代碼
- 原生javascript的ajax請(qǐng)求及后臺(tái)PHP響應(yīng)操作示例
- php利用ZipArchive類(lèi)操作文件的實(shí)例
- PHP生成zip壓縮包的常用方法示例
- php解壓縮zip和rar壓縮包文件的方法
- PHP基于ip2long實(shí)現(xiàn)IP轉(zhuǎn)換整形