31

ネットワークカードのプロパティセクションで、Windows Server 2008で、IPV6を無効にし、IPV4のみを有効にしました。

ただし、ASP.NETでは、Request.UserHostAddressはIPV6アドレスである'::1'を返します。

誰かがIPV4に戻す方法を知っていますか?

4

3 に答える 3

38

Rolla Web サイトの 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();
}
于 2011-12-21T22:40:21.227 に答える
23

localhost (::1 / 127.0.0.1) に接続している場合、サーバーにあるネットワーク カードを使用しているのではなく、Windows にある仮想カードのように使用しています。システム全体からサポートを削除せずに、ループバック カードを構成してそこから IPv6 を削除する方法はないと思いますが、Win2008 ではおそらくそれができなくなりました。

ネットワーク パケット キャプチャ ユーティリティを実行して、物理カードが使用されていないことを確認できます。Windows では、仮想ループバック カードを通過するトラフィックを傍受することはできません。

とはいえ、別のマシンから (物理カードを通過する接続を介して) アクセスする場合は、IPv4 アドレスが返されるはずです。Request.UserHostAddress

于 2009-12-19T17:43:18.373 に答える
4
  1. [スタート]->[コントロールパネル]をクリック->[View network status and tasksコントロールパネル]ウィンドウをクリック->[ウィンドウ]をクリックしchange adapter settingsますNetwork and Sharing Center

  2. Network Connectionsウィンドウが表示されます。network adapterここで、 IPv6を無効にする(ワイヤレスアダプタまたは有線イーサネットアダプタの場合があります)を右クリックして、をクリックしますProperties

  3. network adapter propertiesウィンドウで、チェックを外しInternet Protocol Version 6 (TCP/IPv6)て[OK]をクリックします。

  4. コマンドプロンプトregeditを入力してレジストリエディタを起動し、レジストリエディタで次のレジストリ項目を探します。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
    
  5. アイテムが使用できない場合はDisabledComponents、[編集]->[新規]->[DWORD(32ビット)値]に移動し、値を0xffffffff(タイプするだけffffffff)に設定して、次の形式でアイテムを作成する必要があります。これにより、IPv6ループバックインターフェイスを除くすべてのIPv6機能が無効になり、最後にをクリックしますOK

  6. コンピューターを再起動します。

于 2012-09-13T09:57:41.843 に答える