2011-07-06 108 views
3

我试图从一个完全合格的域名获得NetBios名称...从FQDN获取域名?

用户输入的FQDN和我转换为NetBios名称为

如xyz.test.com(这只是一个例如,FQDN是什么)

它的NetBios(我不知道它是否被称为NetBios请随时纠正我)name'xyz'。

有没有办法做到这一点.. ??

感谢

理解的一部分?

我有点用的术语混淆...

,我们有不同的FQDN客户喜欢xyz.test.comint.hdsh.local等..

我需要得到域名出来的这些,所以我可以形成域\用户名

所以上面的例子看起来像某某\ usernam ehdsh \ username ..

正如我们可以看到第二个FQDN的第二部分为域。

所以我需要帮助是搞清楚哪些是FQDN内的域。

回答

3

你想要NetBIOS名称还是FQDN的主机名部分?

如果它只是主机名,你可以做

hostname=fqdn.Split('.')[0] 

--edit

你希望得到的域名为当前计算机,因为你可以只使用

System.Environment.GetEnvironmentVariable("USERDOMAIN") 

当然,只有当您正在运行非域用户(例如服务)时才能以登录用户身份运行,您可以使用这些用户:

System.DirectoryServices.ActiveDirectory.Domain.GetComputerDomain().Name 

您需要从GAC中引用DirectoryServices.dll。这将返回AD域(它是一个FQDN),因此您将不得不使用@语法而不是\

例如。如果它作为home.lan出现,您可以使用[email protected]

+0

请你能看看理解部分..谢谢 – user175084

+0

所以这不会工作它的领域是第二部分。 – user175084

0

FQDN是使用DNS而不是NetBIOS查找的计算机的域名。如果您使用现代版本的Windows,我认为您可以使用其他形式:username @ FQDN来形成完整的用户名。