我想在我的網站上集成好的代理檢測器腳本。因此,在搜索時我得到了這段代碼。PHP - 使用代理服務器(如hidemyass)代理檢測並阻止網站訪問
$proxy_headers = array(
'HTTP_VIA',
'HTTP_X_FORWARDED_FOR',
'HTTP_FORWARDED_FOR',
'HTTP_X_FORWARDED',
'HTTP_FORWARDED',
'HTTP_CLIENT_IP',
'HTTP_FORWARDED_FOR_IP',
'VIA',
'X_FORWARDED_FOR',
'FORWARDED_FOR',
'X_FORWARDED',
'FORWARDED',
'CLIENT_IP',
'FORWARDED_FOR_IP',
'HTTP_PROXY_CONNECTION'
);
foreach($proxy_headers as $x){
if (isset($_SERVER[$x])) die("You are using a proxy!");
}
然後我嘗試通過ngrok訪問我的localhost網站,它阻止我查看它返回「您正在使用代理服務器!」。我試着用hidemyass和另一個代理探測器,我得到了同樣的結果。這是我想要的hidemyass類型代理站點的情況下。現在我的問題是,ngrok也使用代理服務器,因爲它阻止了我的訪問?我讀到某人的評論HTTP_X_FORWARDED_FOR
爲他的互聯網直接連接返回誤報。我試圖刪除這個和wooo,沒有更多的hidemyass或其他檢測代理。網站可以通過代理訪問。所以,我猜它很重要。所以,我的第二個問題是,HTTP_X_FORWARDED_FOR
是否真的返回誤報?還是因爲ngrok也使用代理服務器,即使我直接連接,我也無法訪問我的網站?是不是可以使用HTTP_X_FORWARDED_FOR
?你在這個劇本中看到的任何散文或缺點請告訴我。
這兩個哪一個你最推薦? –
和你說的節點js,但如何在純PHP中做到這一點? –
我個人更喜歡比較IP,我還會爲代理訪問者創建一個驗證碼驗證表單,以確保它們不被用於DDOS攻擊 –