我正在运行一个服务器,我想显示我自己的IP地址。
获取计算机自身(如果可能的话,外部)IP地址的语法是什么?
有人编写了以下代码。
IPHostEntry host;
string localIP = "?";
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily.ToString() == "InterNetwork")
{
localIP = ip.ToString();
}
}
return localIP;
然而,我通常不信任作者,我不理解这段代码。有更好的方法吗?
以最快的方式获取远程ip地址。您必须使用下载程序,或者在您的计算机上创建一个服务器。
使用这段简单代码的缺点:(这是推荐的)是它将花费3-5秒来获取您的远程IP地址,因为web客户端初始化时总是需要3-5秒来检查您的代理设置。
public static string GetIP()
{
string externalIP = "";
externalIP = new WebClient().DownloadString("http://checkip.dyndns.org/");
externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
.Matches(externalIP)[0].ToString();
return externalIP;
}
这是我如何修复它..(第一次仍然需要3-5秒),但在那之后,它总是会在0-2秒内得到你的远程IP地址,这取决于你的连接。
public static WebClient webclient = new WebClient();
public static string GetIP()
{
string externalIP = "";
externalIP = webclient.DownloadString("http://checkip.dyndns.org/");
externalIP = (new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"))
.Matches(externalIP)[0].ToString();
return externalIP;
}