如何在WebMethod中获取呼叫者的IP地址?

时间:2020-03-06 14:41:35  来源:igfitidea点击:

如何在WebMethod中获取呼叫者的IP地址?

[WebMethod]
public void Foo()
{
    // HttpRequest... ? - Not giving me any options through intellisense...
}

使用Cand ASP.NET

解决方案

HttpContext.Current.Request.UserHostAddress是我们想要的。

HttpContext实际上在WebService基类中可用,因此只需使用Context.Request(或者也指向当前上下文的HttpContext.Current)即可访问HttpRequest提供的成员。

试试这个:

string ipAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

尚未在webMethod中尝试过,但我在标准HttpRequests中使用了它

尝试:

Context.Request.UserHostAddress

请注意。 IP地址不能用于唯一标识客户端。 NAT防火墙和公司代理无处不在,并将许多用户隐藏在一个IP后面。