Получить неквалифицированное имя хоста в .NET - PullRequest
1 голос
/ 18 февраля 2009

Существует ли .NET-эквивалент функции winsock GetNameInfoW() с установленным флагом NI_NOFQDN? Как указано в документах MSDN для GetNameInfoW:

Установка флага NI_NOFQDN приводит к тому, что локальные хосты получают только свое Относительное различающееся имя (RDN), возвращаемое в параметре pNodeBuffer.

Самым близким, что я могу найти, является System.Net.Dns.GetHostEntry(), который возвращает IPHostEntry, но HostName которого является полностью -квалифицированным доменным именем хоста. Я просто хочу безоговорочное имя хоста.

Например, если IP-адрес «xxxx» разрешается в полное доменное имя «foohost.company.domain.com», я могу получить «foohost» из GetNameInfoW(), указав NI_NOFQDN, но, похоже, что эквивалент в .NET. Я не уверен, что GetNameInfoW() делает NetBIOS или LDAP или что-то еще под прикрытием. Любые мысли о том, как сделать то же самое в .NET?

Ответы [ 2 ]

1 голос
/ 19 февраля 2009

Если компьютер имеет несколько IP-адресов, он также может иметь несколько имен хостов (полностью определен или не имеет значения в этом контексте).

Если мне нужно было «имя компьютера», в прошлом я использовал «Environment.MachineName», которое технически возвращает NetBIOS-имя блока, но, по крайней мере, это не зависит от конфигурации IP.

1 голос
/ 18 февраля 2009

Пытаетесь ли вы получить имя компьютера или DNS-имя для IP-адреса компьютера (иногда другое). Если вы действительно хотите использовать GetNameInfoW (), вы всегда можете просто использовать Pinvoke из .NET.

Редактировать: Это может быть взломом, но вы могли бы использовать результат из System.Net.Dns.GetHostEntry () и просто сделать строку. неквалифицированное имя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...