我在这个回答中找到了一段代码片段:在控制台应用程序中获取IP地址
using System;
using System.Net;
namespace ConsoleTest
{
class Program
{
static void Main()
{
String strHostName = string.Empty;
// Getting Ip address of local machine...
// First get the host name of local machine.
strHostName = Dns.GetHostName();
Console.WriteLine("Local Machine's Host Name: " + strHostName);
// Then using host name, get the IP address list..
IPHostEntry ipEntry = Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine("IP Address {0}: {1} ", i, addr[i].ToString());
}
Console.ReadLine();
}
}
}
当我在本地运行代码以获取计算机的IP地址时,此代码可以正常工作。我试图使用该代码来获取网络上服务器的IP地址。所以,基本上我尝试用strHostName =“myServerName”替换strHostName = Dns.GetHostName(); 但它只返回一个IP。当我在服务器本身上运行程序时,我得到了分配给该服务器的所有IP。目标是在我的计算机上运行程序,从数据库表中读取服务器名称以获取100多个服务器的IP地址。我试图避免必须登录到每个服务器并在每个服务器上运行程序以获取IP地址。
有趣的是,代码对“www.google.com”有效 - 这是否与服务器相关还是安全问题?
在我可以开始从数据库获取数据之前,我需要让该代码在一个服务器上正常工作:) 希望这样解释清楚了。谢谢!