Получить доменное имя из 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 для формирования полного имени пользователя.

Другие вопросы по тегам