Разрешить имя NetBIOS в Windows 7

Согласно этой ссылке , NetBIOS больше не поддерживается, начиная с Windwos Vista. Конечно, я больше не вижу NetBIOS-имя в сетевых свойствах.

Однако, когда я пишу коды в своей Windows 7, я все еще сталкиваюсь с NetBIOS-именами во многих местах. Например

  1. я все еще могу использовать «MYDOMAIN \ Harvey» для входа в систему на моем компьютере, где я считаю, что MYDOMAIN - это имя NetBIOS.
  2. Переменные среды COMPUTERNAME и USERDOMAIN по-прежнему являются именами NetBIOS. Я ожидаю увидеть здесь DNS-имена
  3. Имена моих экземпляров SQL Server, поступающие из моей SQL Server Management Studio, по-прежнему похожи на MYMACHINE \ Instance1.

Я предполагаю, что Microsoft по-прежнему поддерживает некоторые из них для обратной совместимости. Я хочу понять, как Windows 7 будет преобразовывать имя NetBIOS в IP-адрес. Я нашел эту статью, в которой объясняется, как работает разрешение имен NetBIOS , но я боюсь, что это уже не так в Windows 7. По крайней мере, для меня нет WINS-сервера.

Мой последний вопрос: как программно выполнить разрешение имен NetBIOS, предпочтительно на C #. Я могу использовать PInvoke.

UDAPTE

Тридус был прав. Я могу использовать System.Net.Dns.GetHostAddresses («имя хоста») для разрешения имени NetBIOS. Я использовал отражатель, чтобы увидеть, что происходит под капотом. Он вызывает gethostbyname () из ws2_32.dll

Здесь , он объясняет, что gethostbyname () выполняет разрешение имени NetBIOS.

  1. Проверьте имя локального хоста на совпадение имени.
  2. Проверьте файл Hosts на соответствие записи имени.
  3. Если DNS-сервер настроен, запросите его.
  4. Если совпадение не найдено, попробуйте NetBIOS разрешение имен.

О загадке NetBIOS, не поддерживаемой в этой ссылке , я думаю, это просто означает, что API не поддерживается. Пользователи ServerFault считают, что NetBIOS все еще поддерживается в Windows 7.

6
задан Community 13 April 2017 в 12:13
поделиться