IPV6 が無効な場合でも、IIS Request.UserHostAddress が IPV6 (::1) を返す
質問
Windows Server 2008 上のネットワーク カードのプロパティ セクションでは、IPV6 が無効になっており、IPV4 のみが有効になっています。
ただし、ASP.NET では、Request.UserHostAddress は '::1' (IPV6 アドレス) を返します。
IPV4に戻す方法を知っている人はいますか?
解決
は、あなたのサーバが持っているネットワークカードを使用してではなく、Windowsが持つ仮想カードのようにしていません。私は全体ではなく、システムからのサポートを削除せずに、それからIPv6を削除するループバックカードとを設定するには、とにかくがあるとは思いませんが、Win2008にあなたはおそらくもうそれを行うことはできません。
あなたは物理的なカードは、utilsのキャプチャネットワークパケットを実行することによって使用されていないことを確認することができます。 Windowsでは、仮想ループバックカードを歩くトラフィックを盗聴ことはできません。
言った、あなたは(あなたの物理的なカードを通過される接続を介して)別のマシンからアクセスしてください、あなたは、IPv4アドレスがRequest.UserHostAddress
によって返される表示されるはずです。
他のヒント
ロラのウェブサイトから4 Guysは、私は私のアプリで使用してきたこれは、ここでの解のを持っていますます。
アップデートます:
このリンクは死んで行く念のため、ここでのコードは、このリンクに基づいています:
public string GetIpAddress()
{
string ipAddressString = HttpContext.Current.Request.UserHostAddress;
if (ipAddressString == null)
return null;
IPAddress ipAddress;
IPAddress.TryParse(ipAddressString, out ipAddress);
// If we got an IPV6 address, then we need to ask the network for the IPV4 address
// This usually only happens when the browser is on the same machine as the server.
if (ipAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
{
ipAddress = System.Net.Dns.GetHostEntry(ipAddress).AddressList
.First(x => x.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
}
return ipAddress.ToString();
}
[スタート] に移動 -> [コントロール パネル] をクリック -> をクリックします
View network status and tasks
コントロールパネルウィンドウで -> をクリックしますchange adapter settings
でNetwork and Sharing Center
窓。Network Connections
ウィンドウが表示されます。ここで右クリックすると、network adapter
IPv6 を無効にする (ワイヤレス アダプターまたは有線イーサネット アダプターのいずれか) をクリックし、Properties
.の中に
network adapter properties
窓、チェックを外すInternet Protocol Version 6 (TCP/IPv6)
そして「OK」をクリックします。タイプ
regedit
コマンド プロンプトでレジストリ エディタを起動し、レジストリ エディタで次のレジストリ項目を見つけます。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
もし
DisabledComponents
項目が使用できない場合は、[編集] -> [新規] -> [DWORD (32 ビット) 値] に移動して次の形式で項目を作成し、値を に設定する必要があります。0xffffffff
(入力するだけですffffffff
)。これにより、IPv6 ループバック インターフェイスを除くすべての IPv6 機能が無効になります。最後に、OK
.コンピュータを再起動します。