1
我已經創建了一個使用PHP的Web應用程序。我想知道從代理或客戶端應用程序中隨機生成的IP。我們的應用程序只允許每個IP地址一次點擊。 我使用$_SERVER['HTTP_USER_AGENT']
檢查了用戶代理。我目前得到了用戶代理,但我想知道用戶代理是否使用任何其他工具動態生成IP地址 。是否可以使用代碼進行檢查?PHP如何從HTTP請求中檢測隨機生成的IP?
我已經創建了一個使用PHP的Web應用程序。我想知道從代理或客戶端應用程序中隨機生成的IP。我們的應用程序只允許每個IP地址一次點擊。 我使用$_SERVER['HTTP_USER_AGENT']
檢查了用戶代理。我目前得到了用戶代理,但我想知道用戶代理是否使用任何其他工具動態生成IP地址 。是否可以使用代碼進行檢查?PHP如何從HTTP請求中檢測隨機生成的IP?
你可以試試這段代碼:
if (
$_SERVER['HTTP_X_FORWARDED_FOR']
|| $_SERVER['HTTP_X_FORWARDED']
|| $_SERVER['HTTP_FORWARDED_FOR']
|| $_SERVER['HTTP_CLIENT_IP']
|| $_SERVER['HTTP_VIA']
|| in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))
|| @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30))
{
exit('Proxy detected');
}
來源:digitalpoint
從哪裏獲得的變量$錯誤號和$ errstr的價值? 此代碼是否幫助我檢測IP是動態生成還是不? 有些時候客戶端使用代理服務器,我希望每個IP只允許一個請求(用於檢查) –
請參閱http://php.net/manual/en/function.fsockopen.php,這些變量通過引用傳遞。此代碼將檢測用戶是否使用代理服務。大多數IP是動態生成的 - 至少是個人的。靜態IP主要用於公司。當你說動態生成時,我猜你的意思是使用代理服務? – Raisen
非常有用的信息。如何使用PHP代碼檢測匿名代理服務器? –