簡體   English   中英

IIS7 或 ASP.NET 返回一個奇怪的客戶端 IP 地址

[英]IIS7 or ASP.NET is returning an odd client IP Address

在我的 ASP.NET 應用程序中,我這樣說是為了獲取客戶端 IP 地址:

string ipAddress = HttpContext.Current.Request.UserHostAddress;

這是我一直使用的正常、直接的方法,而且它似乎總是有效的。 大家都知道,上面的語句只是 REMOTE_ADDR 服務器變量的包裝。

很簡單,對吧? 好吧,在過去的幾天里,我注意到在我的本地開發機器上,它返回這個值:

"fe80::dde4:def3:7f1b:a582%10"

我不知道為什么。 我正在運行 Vista x64 並使用 IIS7 運行我的應用程序。 我確實啟用了 IPv4 和 IPv6,但通常會返回如下內容:

"1::"

我不知道為什么會這樣。 重啟解決不了任何問題。

編輯:

發生這種情況時,我正在使用 Chrome。

看起來它正在返回IPv6

::1是 IPv6 的環回地址,它只是1::的反轉字節順序。

我還應該注意,IPv6 中的fe80::/10地址是自動配置 IP 地址(在 IPv4 中,這些地址是169.254.0.0/16 )。 例如,如果您在專用 LAN 上並且無法訪問 DHCP 服務器,Windows 將自動為您的以太網適配器分配一個自動配置 IP 地址。

僅供參考,您通常應該將私有 IP 地址分配給無法訪問 DHCP 服務器的適配器。

當您看到此問題時,您使用的是 FireFox 嗎? 默認情況下,如果可用,它將使用 IPv6。 我建議關閉它:

  • 導航到“關於:配置”
  • 找到“network.dns.disableIPv6”條目
  • 設置為真

這也將加速本地開發和調試,因為啟用 IPv6 時 FF 有時會無緣無故掛起。

我推薦的另一個選項是禁用 IPv6。 除非您運行的是端到端的 IPv6,否則它現在沒有用處,而最終用戶 ISP 沒有。 只需打開連接上的連接屬性並取消選中“Internet 協議版本 6 (TCP/IPv6)”框。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM