如何使用c#.net获取所有局域网系统的主机名
通过"net view“命令,我获得了一些系统的主机名,即使它们在局域网中,也无法访问所有系统。为什么会这样呢?
发布于 2010-01-12 19:33:21
试试这个:(对于无活动目录)
public static int GetAllIPAndHostNames()
{
string strHostName;
// 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);
IPHostEntry remoteIP;
//using host name, get the IP address list..
IPHostEntry ipEntry = Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
int i = 0;
while (i < addr.Length)
{
Console.WriteLine("IP Address {0}: {1} ", i, addr[i].ToString());
//HostNames
remoteIP = Dns.GetHostEntry((addr[i]));
Console.WriteLine("HostName {0}: {1} ", i, remoteIP.HostName);
i++;
}
return 0;
}发布于 2015-06-12 14:30:51
private static List<String> getAllHostNames()
{
List<String> hostNames = new List<String>();
IPAddress[] ipaddress = Dns.GetHostAddresses(Dns.GetHostName());
String hname;
foreach (IPAddress ip in ipaddress)
{
//if ipv4
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
hname = Dns.GetHostEntry(ip).HostName.ToLower();
if (!hostNames.Contains(hname))
{
hostNames.Add(hname);
}
}
}
return hostNames;
}https://stackoverflow.com/questions/2048372
复制相似问题