2012-06-29 60 views
3

我需要獲取服務器的IP地址,以便將其與Key/Value字符串集合一起發送到付款網關提供程序。Request.ServerVariables [「LOCAL_ADDR」]返回「:: 1」

我運行本地主機,並Request.ServerVariables["LOCAL_ADDR"]正在恢復::1

我得到驗證錯誤是由賢者收費返回:

的端ClientIPAddress格式無效。如果不包括領先的 零「的,並且只包括到255

在0值範圍這是爲什麼,以及如何獲取有效的IP地址發送?

回答

7

禁用本地網絡適配器上的IPv6。 :: 1表示IPv6中的「LOCALHOST」。然後你會得到正常的IPv4 127.0.0.1

反正:: 1是一個* VALID *的IP地址..

更多本地主機上的定義:http://en.wikipedia.org/wiki/Localhost

對於的IPv4通信,系統的計算機 的虛擬回送接口通常分配有地址127.0.0.1和子網掩碼 255.0.0.0。根據正在使用的特定操作系統(特別是在Linux和Microsoft Windows中)以及安裝的路由機制, 這會使用 這樣的條目填充本地系統的路由表,即數據包從127.0.0.0/8發往任何地址塊將 內部路由到網絡環回設備。

的IPv6,在 另一方面,環迴路由前綴:: 1/128僅由一個 地址的:: 1(0:0:0:0:0:0:0: 1的地址在最低有效位處具有一個 ,否則爲0)明確地定義爲 作爲環回地址[6],儘管附加地址可能是 根據需要由主機 分配給環回接口 管理員。

+0

歡呼你的答案。我正在使用Sage Pay,他們正在返回以下錯誤:ClientIPAddress格式無效。不應該包含前導零,並且只包含0到255範圍內的值。我會嘗試禁用IPv6 – Curt