如何从C#中的用户客户端获取IP地址?

时间:2012-06-01 14:38:18

标签: c# logging client ip

我正在使用Get public IP using DynDNS and WebRequest C#

中找到的代码

获取IP地址。但我只是从服务器获取IP地址,我需要的是连接到我的Web应用程序的用户的IP地址。

String direction = "";
WebRequest request = WebRequest.Create("http://checkip.dyndns.org/");
using (WebResponse response = request.GetResponse())
using (StreamReader stream = new StreamReader(response.GetResponseStream()))
{
    direction = stream.ReadToEnd();
}

//Search for the ip in the html
int first = direction.IndexOf("Address: ") + 9;
int last = direction.LastIndexOf("</body>");
direction = direction.Substring(first, last - first);

2 个答案:

答案 0 :(得分:2)

如果您正在运行网络应用,并且想要“客户端”IP,you need to use the UserHostAddress

var userAddress = HttpContext.Current.Request.UserHostAddress;

答案 1 :(得分:0)

首先获取一个上下文:

HttpListenerContext ctx = m_HttpListener.GetContext();

接受请求后,ctx中提供了客户信息。使用ctx获取客户端IP地址:

string IP = ctx.Request.RemoteEndPoint.Address.ToString();