【问题标题】:Get IP v4 of client client machine asp.net获取客户端客户端机器asp.net的IP v4
【发布时间】:2018-12-15 14:05:50
【问题描述】:

我正在尝试在 asp.net 中获取客户端机器的 IP V4,我尝试了以下代码:

Request.ServerVariables["REMOTE_ADDR"]; Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 请求.用户主机地址;

但是这些都给了我客户端机器的IP V6,我怎样才能获得IP V4?任何帮助或建议将不胜感激。

【问题讨论】:

  • 如果您不想或无法支持,请在您的服务器上禁用 IPV6。

标签: asp.net asp.net-mvc ip ipv4


【解决方案1】:

您可以使用以下代码显示客户端 IPAddress V4:

string strHostName = System.Net.Dns.GetHostName();
        string clientIPAddress = System.Net.Dns.GetHostAddresses
            (strHostName).GetValue(1).ToString();

也许客户端有很多网络配置,所以可以有多个 IP v4 地址。您可以更改代码中的数字“1”以获得您喜欢的数字。

更新:

【讨论】:

  • 谢谢,但它不起作用,它仍然提供 IP V6。
  • @ChupChapCharli 您是否尝试更改 GetValue 函数中的数字? app在这一行打断点然后就可以看到几个IP了。选择您需要的。
  • 它给了我服务器的 IP 地址而不是客户端的 IP 地址。
  • 我明白了。 @ChupChapCharli,作为第二种解决方案,您可以使用 javascript 获取客户端 IP,然后将其传递给控制器​​或数据库,或者...试试这个链接:ourcodeworld.com/articles/read/257/…
【解决方案2】:

我使用了这个 API:https://ipstack.com/,他们提供的 IP 和其他详细信息非常准确,但他们为受 SSL 保护的网站付费。

【讨论】:

    猜你喜欢
    • 2011-07-22
    • 2018-12-30
    • 2020-12-08
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多