Asp.net mvc 4 从请求mvc获取ip地址

Asp.net mvc 4 从请求mvc获取ip地址,asp.net-mvc-4,ip-address,Asp.net Mvc 4,Ip Address,我正在尝试获取发出请求的设备的ip地址。这应该可以在自托管或托管在具有internet访问的服务器上工作 我试过这个: //Get Visitor IP address method public string GetVisitorIpAddress() { string stringIpAddress; stringIpAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

我正在尝试获取发出请求的设备的ip地址。这应该可以在自托管或托管在具有internet访问的服务器上工作

我试过这个:

//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


我做错了什么?

在IPv6中
::1
与IPv4中的
127.0.0.1
相同。因此,当您从本地计算机运行它时,这就是您应该得到的


您可以尝试修改主机文件,或尝试通过其IP
http://192.168.0.1
(例如)。

你知道那是IPv6地址的一部分,对吧?不,我没有笑。从来都不需要ip地址。所以我对它做的不多:o