導航:首頁 > 編程語言 > php代理ip採集

php代理ip採集

發布時間:2024-11-10 10:42:23

php獲取IP地址的三個函數區別

以下資料供參考:

1、REMOTE_ADDR 瀏覽當前頁面的用戶計算機的ip地址

2、HTTP_X_FORWARDED_FOR 瀏覽當前頁面的用戶計算機的網關

3.HTTP_CLIENT_IP 客戶端的ip

在PHP 中使用 REMOTE_ADDR 來取得客戶端的 IP 地址,但如果客戶端是使用代理伺服器來訪問,那取到的就是代理伺服器的 IP 地址,而不是真正的客戶端 IP 地址。

要想透過代理伺服器取得客戶端的真實 IP 地址,就要使用 HTTP_X_FORWARDED_FOR 來讀取。

不過要注意的事,並不是每個代理伺服器都能用 HTTP_X_FORWARDED_FOR 來讀取客戶端的真實 IP,有些用此方法讀取到的仍然是代理伺服器的 IP。

還有一點需要注意的是:如果客戶端沒有通過代理伺服器來訪問,那麼HTTP_X_FORWARDED_FOR 取到的值將是空的。

⑵ 關於phpCURL使用ip代理伺服器抓取頁面的問題

$curl = curl_init ();
curl_setopt ( $curl, CURLOPT_URL, 需要抓取的url地址 );
curl_setopt ( $curl, CURLOPT_HEADER, 0 );
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 禁止調用時就輸出獲取到的數據
curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 );
curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, false );

// curl_setopt($ch,CURLOPT_TIMEOUT,20);//10秒
// curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,20);//10秒
// curl_setopt($ch, CURLOPT_REFERER, $collectConfigArray ['refererUrl']);

$collectHtml = curl_exec ( $curl );
echo $collectHtml;
unset ( $curl );
curl_close ( $ch );

⑶ php獲得客戶端的ip和埠號

$_SERVER['REMOTE_PORT'];//埠號
$_SERVER['SERVER_ADDR'];//ip

//補充
$_SERVER['HTTP_CLIENT_IP'];//代理端的(有可能存在,可偽造)
$_SERVER['HTTP_X_FORWARDED_FOR'];//用戶是在哪個IP使用的代理(有可能存在,也可以偽造)

⑷ 如何使用PHP獲取客戶端及伺服器端IP的封裝類

本文實例講述了PHP獲取客戶端及伺服器端IP的封裝類。分享給大家供大家參考,具體如下:
客戶端IP相關的變數:
1. $_SERVER['REMOTE_ADDR']; 客戶端IP,有可能是用戶的IP,也有可能是代理的IP。
2. $_SERVER['HTTP_CLIENT_IP']; 代理端的IP,可能存在,可偽造。
3. $_SERVER['HTTP_X_FORWARDED_FOR']; 用戶是在哪個IP使用的代理,可能存在,可以偽造。
伺服器端IP相關的變數:
1. $_SERVER["SERVER_NAME"],需要使用函數gethostbyname()獲得。這個變數無論在伺服器端還是客戶端均能正確顯示。
2. $_SERVER["SERVER_ADDR"],在伺服器端測試:127.0.0.1(這個與httpd.conf中BindAddress的設置值相關)。在客戶端測試結果正確。
類如下:

class getIP{
function clientIP(){
$cIP = getenv('REMOTE_ADDR');
$cIP1 = getenv('HTTP_X_FORWARDED_FOR');
$cIP2 = getenv('HTTP_CLIENT_IP');
$cIP1 ? $cIP = $cIP1 : null;
$cIP2 ? $cIP = $cIP2 : null;
return $cIP;
}
function serverIP(){
return gethostbyname($_SERVER["SERVER_NAME"]);
}
}
$getIP = new getIP();
$clientIp = getIP::clientIP();
$serverIp = getIP::serverIP();
echo 'Client IP is ',$clientIp,'<br />';
echo 'Server IP is ',$serverIp,'<br />';

閱讀全文

與php代理ip採集相關的資料

熱點內容
理光為什麼設置不了掃描文件夾 瀏覽:872
老夫子pdf 瀏覽:302
基於matlab的圖像壓縮編碼 瀏覽:79
麥克納姆輪編程 瀏覽:156
昂科威15壓縮比 瀏覽:100
安卓車機wifi安全性如何選擇 瀏覽:388
華三伺服器如何外接硬碟 瀏覽:585
csgo創意工坊如何尋找專用伺服器 瀏覽:314
程序員抓蟲子動圖 瀏覽:600
廣數挑四頭螺紋怎麼編程 瀏覽:644
embraco壓縮機是哪國的 瀏覽:909
為什麼伺服器流量那麼貴 瀏覽:258
讀取pdf文件內容 瀏覽:490
如何給腳本鏈接加密 瀏覽:84
多伺服器雲部署方案 瀏覽:443
如何把一個安卓應用改為中文版 瀏覽:450
帶求補器的源碼 瀏覽:733
程序員掉入能力陷阱 瀏覽:672
中百超市多點app如何充值 瀏覽:331
仙劍奇俠傳4codex未加密 瀏覽:194