Согласно этой ссылке , NetBIOS больше не поддерживается, начиная с Windwos Vista. Конечно же, я больше не вижу ни одного имени NetBIOS в свойствах сети.
Однако, когда я пишу коды на моем Windows 7, я все еще сталкиваюсь с именами NetBIOS во многих местах. Например
- Я все еще могу использовать «MYDOMAIN \ Harvey» для входа в систему на моей машине, где я считаю MYDOMAIN именем NetBIOS.
- Переменные среды COMPUTERNAME и USERDOMAIN остаются именами NetBIOS. Я ожидаю увидеть здесь DNS-имена
- Мои имена экземпляров SQL Server, поступающие из моей SQL Server Management Studio, все еще похожи на MYMACHINE \ Instance1.
Я предполагаю, что Microsoft все еще поддерживает некоторые его части для обратной совместимости. Я хочу понять, как Windows 7 собирается преобразовать имя NetBIOS в IP-адрес. Я обнаружил, что эта статья объясняет, как работает разрешение имен NetBIOS , но я боюсь, что в Windows 7 это больше не так.
Мой последний вопрос: как мне сделать разрешение имен NetBIOS программным способом, предпочтительно в C #. Я в порядке, чтобы использовать PInvoke.
UDAPTE
Тридус был прав. Я могу использовать System.Net.Dns.GetHostAddresses ("имя хоста") для разрешения имени NetBIOS. Я использовал отражатель, чтобы увидеть, что происходит под капотом. Он вызывает gethostbyname () из ws2_32.dll
Здесь объясняет, что gethostbyname () будет выполнять разрешение имен NetBIOS.
- Проверьте имя локального хоста на соответствие имени.
- Проверьте файл Hosts на соответствие записи имени.
- Если DNS-сервер настроен, запросите его.
- Если совпадений не найдено, попытайтесь разрешить имя NetBIOS.
О тайне NetBIOS, не поддерживаемой в этой ссылке , я думаю, это просто означает, что API не поддерживается. Люди в ServerFault считают, что NetBIOS все еще поддерживается в Windows 7.