获取客户端 IP 而不是 Web 服务器 IP

本文关键字:IP Web 服务器 客户端 获取 | 更新日期: 2023-09-27 18:29:29

public static string GetPublicIp()
    {
        string direction = "";
        WebRequest request = WebRequest.Create("http://checkip.dyndns.org");
        using (WebResponse response1 = request.GetResponse())
        using (StreamReader stream1 = new StreamReader(response1.GetResponseStream()))
        {
            direction = stream1.ReadToEnd();
        }
        //Search for the ip in the html
        int first1 = direction.IndexOf("Address: ") + 9;
        int last1 = direction.LastIndexOf("</body>");
        direction = direction.Substring(first1, last1 - first1);
        return direction;
    }

我正在尝试在加载 asp.net 页面时获取客户端 IP。我尝试使用上面的代码片段所示的 checkip.dyndns.org 服务,但它返回托管 ASP.NET 应用程序的 Web 服务器的 IP。

我可以修改该代码并让它返回客户端公共 IP 吗?(我需要他们的公共 IP 而不是他们的本地 IP(或者他们是如何返回客户端公共 IP(而不是 WEB 服务器 IP(的更好示例

获取客户端 IP 而不是 Web 服务器 IP

您可以使用

以下内容:

var userIpAddress = HttpContext.Current.Request.UserHostAddress;