How do I get the caller's IP address in a WebMethod?
HttpContext.Current.Request.UserHostAddress is what you want.
Just a caution. IP addresses can't be used to uniquely identify clients. NAT Firewalls and corporate proxies are everywhere, and hide many users behind a single IP.
Try:
Context.Request.UserHostAddress
Try this:
string ipAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
Haven't tried it in a webMethod, but I use it in standard HttpRequests
The HttpContext is actually available inside the WebService
base class, so just use Context.Request
(or HttpContext.Current
which also points to the current context) to get access to the members provided by the HttpRequest
.