如果我訪問https://whatismyipaddress.com/或類似網站,我會得到一個 194.11xxx 范圍內的 IP 地址。
如果我從同一臺計算機轉到我的 ASP.NET MVC 應用程式,它會context.Connection.RemoteIpAddress在中間件中使用,并且會得到 10.xxx 范圍。如果我從移動網路中的手機訪問我的網站,我會落在相同的范圍內。
這里會發生什么?我的意思是它應該是一些路由器或其他東西,但是為什么 IP 檢測站點可以正確獲取我的 IP,而我的 ASP.NET 主機卻不能?
uj5u.com熱心網友回復:
這是因為您試圖從本地計算機獲取 IP。如果您部署應用程式,它應該顯示您的 IP 而不是您的本地 IP。
uj5u.com熱心網友回復:
作為參考,以防有人偶然發現這一點。在大多數網站上,您會獲得類似context.Connection.RemoteIpAddress獲取客戶端 IP 的代碼,包括此中間件指南:https : //docs.microsoft.com/en-us/aspnet/core/security/ip-safelist?view=aspnetcore-6.0
一切正常,直到您使用反向代理部署到托管(謝謝@Llama),為了防止 DDoS 攻擊,您的請求會落在將您的請求轉發到您網站的代理上。
不過,大多數主機都會傳遞原始 IP。你可以像context.Request.Headers["X-Forwarded-For"].FirstOrDefault().
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/396947.html
標籤:C# 网站 asp.net-mvc ip
