Получить доменное имя из FQDN?
Я пытаюсь получить имя NetBios из полного доменного имени...
пользователь вводит полное доменное имя, и я преобразую в имя NetBios для
например, xyz.test.com (это всего лишь пример, полное доменное имя и прочее)
к его NetBios (я не уверен, если он называется NetBios, пожалуйста, не стесняйтесь меня поправлять) имя 'xyz'.
Есть ли способ сделать это..??
Спасибо
часть понимания
Я немного запутался с условиями...
у нас есть клиенты с разными FQDN, такими как xyz.test.com или int.hdsh.local и т. д.
мне нужно получить доменное имя из них, чтобы я мог сформировать домен \ имя пользователя
поэтому приведенные выше примеры выглядят как xyz \ username и hdsh \ username..
как мы видим, 2-е полное доменное имя имеет 2-ю часть в качестве домена.
поэтому мне нужна помощь, чтобы выяснить, какой домен в FQDN.
2 ответа
Вам нужно имя NetBios или просто часть имени хоста полного доменного имени?
Если это просто имя хоста, который вы могли бы сделать
hostname=fqdn.Split('.')[0]
--РЕДАКТИРОВАТЬ
Вы ищете доменное имя для текущего компьютера, потому что вы могли бы просто использовать
System.Environment.GetEnvironmentVariable("USERDOMAIN")
Конечно, это работает, только если вы работаете как вошедший в систему пользователь, если вы работаете не в домене (например, в службе), вы можете использовать:
System.DirectoryServices.ActiveDirectory.Domain.GetComputerDomain().Name
Вам нужно будет сослаться на DirectoryServices.dll из GAC. Это возвращает домен AD (его полное доменное имя), поэтому вам придется использовать синтаксис @ вместо \
например. если бы он вышел как home.lan, вы бы использовали username@home.lan
FQDN - это доменное имя компьютера, которое можно найти с помощью DNS, а не NetBIOS. Если вы используете современные версии Windows, я думаю, что вы можете использовать другую форму: username@FQDN для формирования полного имени пользователя.