2

リクエストを行っているデバイスの IP アドレスを取得しようとしています。これは、自己ホスト型またはインターネット アクセスのあるサーバー上でホスト型の両方で機能するはずです。

私はこれを試しました:

//Get Visitor IP address method
    public string GetVisitorIpAddress()
    {
        string stringIpAddress;
        stringIpAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

        if (stringIpAddress == null) //may be the HTTP_X_FORWARDED_FOR is null
            stringIpAddress = Request.ServerVariables["REMOTE_ADDR"]; //we can use REMOTE_ADDR
        else if (stringIpAddress == null)
            stringIpAddress = GetLanIPAddress();

        return stringIpAddress;
    }

    //Get Lan Connected IP address method
    public string GetLanIPAddress()
    {
        //Get the Host Name
        string stringHostName = Dns.GetHostName();
        //Get The Ip Host Entry
        IPHostEntry ipHostEntries = Dns.GetHostEntry(stringHostName);
        //Get The Ip Address From The Ip Host Entry Address List
        System.Net.IPAddress[] arrIpAddress = ipHostEntries.AddressList;
        return arrIpAddress[arrIpAddress.Length - 1].ToString();
    }

しかし、どちらの場合も、「::1」と表示されます。

私は何を間違っていますか?

4

1 に答える 1