【发布时间】:2011-11-12 17:24:25
【问题描述】:
我正在用 c# 开发一个应用程序,我需要在其中找到用于连接到 Internet 的公共 IP 地址。我怎样才能得到这个?
【问题讨论】:
标签: c# windows network-programming
我正在用 c# 开发一个应用程序,我需要在其中找到用于连接到 Internet 的公共 IP 地址。我怎样才能得到这个?
【问题讨论】:
标签: c# windows network-programming
您可以使用http://showip.codebrainz.ca/ 获取它。更多信息here。
代码示例:
using System;
using System.Net;
class Program
{
static void Main()
{
// Create web client.
WebClient client = new WebClient();
// Download string.
string ip = client.DownloadString("http://showip.codebrainz.ca/");
// Write ip.
Console.WriteLine(ip);
}
}
【讨论】:
【讨论】:
其他发帖人已经介绍了获取公共 IP 地址的最简单方法。有一些替代方案,但它们是根据情况而定的(例如需要支持 SNMP 的路由器的 SNMP)。
如果您想要一种方法,不仅可以让您获取公共 IP 地址,还可以让您测试您如何连接到互联网(例如对称 NAT、全锥、直接连接等),您可以使用STUN 协议(见RFC 5389)。 STUN 还要求您联系外部 STUN 服务器。
Ivar Lumi 在代码项目中发布了一些working c# code,如果你想要一个例子的话。根据您的要求,这可能是多余的。
【讨论】: