
有些網站喜歡http://www.geoip.co.uk能夠像其他人一樣取得我的主機的私人 IP 位址https://www.iplocation.net/無法這樣做。
這種行為背後的原因是什麼?我一直認為如果我使用 NAT 接口,伺服器將無法存取私有 IP。
NAT 會將公用 IP 附加到傳出封包中還是完全刪除私人 IP?如果是後者,為什麼會出現上述行為?
另外,當我查看原始程式碼時http://www.geoip.co.uk,我觀察到我的 IP 直接呈現為文本,即沒有對 JavaScript 函數進行任何形式的呼叫。那麼網站是如何知道我的私有IP的前它甚至渲染網頁?
10.9.64.58 是我的私有 IP 位址(我在 ipconfig 之後得到的位址)。
編輯:正如@simlev 指出的那樣,我應該添加以下資訊:我是一名大學生,在我的PC 上訪問該網站時已連接到學院的LAN,但我在手機上也觀察到相同的行為,並且我的手機未開機那個區域網路。影像截圖這裡和這裡。
編輯:我認為相關的另一個觀察結果:當我使用https:// 訪問網站時,我得到了我的公共IP(所需的東西),但只有當我使用http:// 訪問它時,我才得到私有IP。那麼,我們在這裡討論的是協議問題嗎?
答案1
你使用http代理嗎?在我的例子中,網路代理轉發內部 IP,這可能是反濫用功能。
類似的可能性是,您的 ISP 只為您提供共享的外部 IP 位址,然後當您造訪網站時,它也會將您的內部 IP 傳遞給它們;這是為了識別濫用者:網站可以在向 ISP 提交濫用報告時提供兩個 ip,並且借助內部 ip,ISP 能夠快速追蹤濫用用戶。僅使用外部共用 IP 來做到這一點會更困難。
由於內部和外部 ip 都會隨您的請求一起傳遞,因此一些 show-your-ip 網站選擇顯示請求實際來自的 ip,而另一些則顯示發出請求的帳戶的 ip。
檢查您發送的標頭(例如這裡)。您可能有一個 X-Forwarded-For,其中您的私人 IP 由您的網路上的某些裝置或 ISP 的網路設備之一新增。
有關更多信息,請參閱 Cristopher、Adam Katz 和 Mark 的回答這裡。順便說一句,馬克提供了與我相同的建議並連結到同一網站:-)
更新:是的,您(很可能)正在使用代理。
如果您在校園內,正如從您的評論中可以推斷出的那樣,您的ISP(又名大學)不會將每一位學生直接連接到互聯網,這才有意義:我很容易推測您是透明代理的。
更新:正如OP注意到並正確指出的那樣,透過https造訪的同一網站顯示的是外部IP。這是預期的,因為代理通常不改變 https 流量,因此無法新增洩漏內部 IP 位址的 X-Forwarded-For。
答案2
該網站可能正在利用 WebRTC 安全漏洞。
- “巨大的安全漏洞洩露 VPN 用戶的真實 IP 位址”。洪流狂人。 2015 年 1 月 30 日。
uBlock 起源 (對於火狐瀏覽器/適用於 Chrome)能夠修復此安全漏洞。但您必須轉到其「設定」頁面並選取名為「防止 WebRTC 洩漏本機 IP 位址」的對應方塊。