C# 从LAN中的主机名获取IP地址
我找到了许多关于如何通过IP地址获取主机名的示例,如何在LAN中获取主机的IP地址?这里有一个很好的例子说明了这一点:只要知道机器的名称,就可以使用。您的网络DNS应将其识别为LAN计算机并返回正确的IP。尝试此操作C# 从LAN中的主机名获取IP地址,c#,windows-7,network-programming,C#,Windows 7,Network Programming,我找到了许多关于如何通过IP地址获取主机名的示例,如何在LAN中获取主机的IP地址?这里有一个很好的例子说明了这一点:只要知道机器的名称,就可以使用。您的网络DNS应将其识别为LAN计算机并返回正确的IP。尝试此操作 public static void DoGetHostAddresses(string hostname) { IPAddress[] ips; ips = Dns.GetHostAddresses(hostname); Console.WriteLi
public static void DoGetHostAddresses(string hostname)
{
IPAddress[] ips;
ips = Dns.GetHostAddresses(hostname);
Console.WriteLine("GetHostAddresses({0}) returns:", hostname);
foreach (IPAddress ip in ips)
{
Console.WriteLine(" {0}", ip);
}
}
这是我从获得的。您可以使用windows管理类来实现这一点,它也适用于同一域中的远程计算机(但我不知道它们是否需要启用或禁用任何安全或策略设置才能工作)。例如:
public List<NetworkAdapter> GetAdapterList()
{
ManagementClass mgmt = new ManagementClass("Win32_NetworkAdapterConfiguration ");
ManagementObjectCollection moc = mgmt.GetInstances();
List<NetworkAdapter> adapters = new List<NetworkAdapter>();
// Search for adapters with IP addresses
foreach(ManagementObject mob in moc)
{
string[] addresses = (string[])mob.Properties["IPAddress"].Value;
if (null == addresses)
{
continue;
}
NetworkAdapter na = new NetworkAdapter();
na.Description = (string) mob.Properties["Description"].Value;
na.MacAddress = (string) mob.Properties["MACAddress"].Value;
na.IPAddresses = addresses;
adapters.Add(na);
}
return adapters;
}
这种方法可能会为您获得比在DNS中注册的IP更多的IP。使用DNS.GetHostEntry(主机名)而不是过时的DNS.GetHostAddresses。如果您想从pc获取IP地址(V4),这里有一些简单的代码 将此库导入到类中
using System.Net;
初始化这些变量并将其声明到代码中。它们包含主机名、IP地址和主机地址数组:
string HostName = Dns.GetHostName().ToString();
IPAddress[] IpInHostAddress = Dns.GetHostAddresses(HostName);
string IPV4Address = IpInHostAddress[1].ToString(); //Default IPV4Address. This might be the ip address you need to retrieve
string IPV6Address = IpInHostAddress[0].ToString(); //Default Link local IPv6 Address
打开命令提示符,只需键入“ipconfig”并按enter键。完成后,您可以检查字符串IPV4Address是否与我们电脑中的IPV4Address匹配。您尝试了什么?我见过很多这样的例子。我想答案也是一样的,这对你有帮助吗?(包括示例代码)嗨..是的..我找到了答案..很有帮助..谢谢大家!这是上面的原件(如果需要更深入的挖掘);
string HostName = Dns.GetHostName().ToString();
IPAddress[] IpInHostAddress = Dns.GetHostAddresses(HostName);
string IPV4Address = IpInHostAddress[1].ToString(); //Default IPV4Address. This might be the ip address you need to retrieve
string IPV6Address = IpInHostAddress[0].ToString(); //Default Link local IPv6 Address