我使用此代码获取公共 IP 地址(感谢这篇文章如何获取运行我的 C# 应用程序的服务器的 IP 地址?):
public static string GetPublicIP()
{
try
{
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);
return direction;
}
catch (Exception ex)
{
return "127.0.0.1";
}
}
但是无论谁访问我的网站,他们都获得相同的IP,并且是服务器公共IP,而不是当前用户的IP。
是否可以在当前用户的上下文中运行 WebRequest,而不是作为服务器?
还是我在 App_Code 中运行此函数以使当前用户请求不可用,而是使用服务器上下文的问题?
请帮忙!