Получить IP-адрес от имени хоста в локальной сети

Я нашел много примеров того, как получить имя хоста по IP-адресу, как я могу получить IP-адрес хоста в локальной сети?

 BugFinder13 авг. 2012 г., 11:37
Что ты пробовал? Я видел много примеров этого.
 houstonCYap14 авг. 2012 г., 09:18
привет .. да ... я нашел ответ .. это полезно .. спасибо всем!
 mtijn13 авг. 2012 г., 11:39
Я думаю, что то же самое ответилиhereэто тебе помогает? (включает пример кода)

Ответы на вопрос(6)

он также работает для удаленных машин, находящихся в одном домене (но я не знаю, нужно ли им включать или отключать какие-либо параметры безопасности или политики для этого). например:

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;
}

и для доступа к удаленной машине создайте класс управления следующим образом:

ManagementClass mgmt = new ManagementClass
    (\\\\servername\\root\\cimv2:Win32_NetworkAdapterConfiguration);

этот подход может дать вам больше IP-адресов, чем только те, которые были зарегистрированы в DNS.

Решение Вопроса

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);
    }
}

я получил это отhttp://msdn.microsoft.com/en-us/library/system.net.dns.gethostaddresses.aspx

 13 авг. 2012 г., 12:00
А вот оригинал выше (если требуется более глубокая копка);msdn.microsoft.com/en-us/library/…

Dns.GetHostAddresses, DNS вашей сети должен распознавать его как компьютер локальной сети и возвращать правильный IP.

если вы хотите получить IP-адрес (V4) с вашего компьютера.

Импортируйте эту библиотеку в свой класс

using System.Net;

Инициализируйте и объявите эти переменные в своих кодах. Они содержат имя хоста, ipaddress и массив адресов хоста:

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 на нашем компьютере.

Addresses.

Ваш ответ на вопрос