首页 > 解决方案 > 如何使用 Web Api2 .NET FRAMEWORK 4.6.2 获取客户端 IP 地址

问题描述

我想使用 asp.net web api2 应用程序获取客户端 IP 地址。

我尝试这段代码,但 request = request ?? 要求; 错误此行代码。

当前上下文中不存在名称“请求”

在此处输入图像描述

public class GetIp
{
    public string IpFetch()
    {
        return GetClientIp();
    }

    private string GetClientIp(HttpRequestMessage request = null)
    {
        request = request ?? Request;
        if (request.Properties.ContainsKey("MS_HttpContext"))
        {
            return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress;
        }
        else if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))
        {
            RemoteEndpointMessageProperty prop = (RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name];
            return prop.Address;
        }
        else if (HttpContext.Current != null)
        {
            return HttpContext.Current.Request.UserHostAddress;
        }
        else
        {
            return null;
        }
    }
}

如何获取客户端IP地址?

标签: c#asp.net-web-api2

解决方案


推荐阅读