[英]Get the IP of the website the client is using to request the data
我試圖只允許某些 IP 使用 PHP 資源,我嘗試過使用服務器引用,但我很遺憾地體驗到它很容易被欺騙,因為它是一個客戶端 header,它可以很容易地修改。
我希望可以從網站訪問該資源,但是來自訪問該網站的客戶端的 IP 與來自該網站的 IP 不同。 這意味着客戶端不應該能夠直接通過瀏覽器或 curl 訪問資源,但如果通過網站訪問則應該允許。
我想我可以使用其中一些 $server 密鑰:
'HTTP_CLIENT_IP','HTTP_X_FORWARDED_FOR','HTTP_X_FORWARDED','HTTP_FORWARDED_FOR','HTTP_FORWARDED','REMOTE_ADDR'
但我不知道使用哪一個來獲取網站 IP以查看它是否與預期匹配,以及哪個返回客戶端的 IP。
我已經嘗試過,但沒有用,因為它可以被欺騙
public function getHost()
{
$url = parse_url($_SERVER['HTTP_REFERER']);
if ($url != null) {
return gethostbyname($url["host"]); // returns referer IP's
}
}
很明顯 getHost() 應該從上面提到的返回一個密鑰,但我不確定是哪一個。
先感謝您
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.