获取机器公网IP

Posted

技术标签:

【中文标题】获取机器公网IP【英文标题】:Get machine Public IP 【发布时间】:2019-04-10 13:43:33 【问题描述】:

尝试使用 c# 获取机器的公共地址(不是本地 IP)。无法获取公共 IP。

我们可以使用外部库或 API 获取公共 IP 地址,例如 link。

是否有可能在不使用外部 API 和库的情况下在 c# 中获取机器公共 IP 地址?

【问题讨论】:

致电ipify。否则:打开路由器 Web 界面,转储配置,解析,找到外部接口,复制 IP 地址(除非路由器通过 API 为您提供此信息)。如果路由器是你的。我是说。 ***.com/questions/3253701/…的可能重复 【参考方案1】:

试试这个

public String getPublicIp()

    HTTPGet req = new HTTPGet();
    req.Request("http://checkip.dyndns.org");
    string[] a = req.ResponseBody.Split(':');
    string a2 = a[1].Substring(1);
    string[] a3=a2.Split('<');
    string ip = a3[0];
    return ip;

【讨论】:

【参考方案2】:

异步检索公共 IP (V4) 地址(推荐)

HttpClient client = new HttpClient();
var ipTask = client.GetStringAsync("https://api.ipify.org");
var ipAddress = await ipTask;

对于 IP V6,使用此 URL:

var ipTask = client.GetStringAsync("https://api6.ipify.org");

【讨论】:

以上是关于获取机器公网IP的主要内容,如果未能解决你的问题,请参考以下文章

zabbix监控公网机器

请问如何用java获取公网IP?

怎么才能获得公网IP

API获取自己的公网IP地址 API查询IP信息

获取本机公网ip(public ip)

公网ip-内网ip