2016-03-05 41 views
-1

我有一臺服務器,但cURL使用服務器IP。我想蜷縮一下使用進入服務器的人的IP地址。我如何使用用戶的IP與捲曲如何通過PHP/cURL使用用戶IP?

+1

你問如何做一個HTTP請求,捲曲,使它看起來像請求被別人做?這不是人們想要經常做的事情。請參閱https://en.m.wikipedia.org/wiki/IP_address_spoofing – Joni

回答

0

你要作出這樣的傻瓜遠程服務器到以爲是來自於你的用戶的IP地址的HTTP請求。這不可能。用戶的IP地址不包含在HTTP請求中;您在$_SERVER['REMOTE_ADDR]中獲得的值來自IP協議。

但是,你可以充當用戶的代理。看起來你已經知道了,但你無法弄清楚正確的做法。

事實上,你有一個頭添加到您的請求到遠程服務器。但是,你傳遞給CURLOPT_HTTPHEADER的說法是,逐字寫入cUrl將請求發送HTTP請求的列表。

這意味着你的代碼應閱讀:

curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Forwarded-For: $ip")); 

被警告遠程服務器可以忽略的頭,或者是因爲程序員監督客戶的可能性,使用HTTP代理還是因爲頭可很容易被僞造。如果它忽略它,那麼它會使用您的服務器的IP地址作爲客戶端IP地址(這是您首先要避免的)。

瞭解更多關於X-Forwarded-For HTTP標頭。