我创建了一个在同一域内完美工作的函数。
在“ Alpha.ca”域上使用时,它可以使用“ Win7-Alpha”之类的名称,并返回“ Win7-Alpha.Alpha.ca”。
error TS2339: Property 'assign' does not exist on type 'ObjectConstructor'
但是,如果我在“ Beta.ca”域上尝试相同的操作,它将仅返回“ Win7-Alpha”。它可以解析如果传递的IPv4地址,但是同样,它仅返回“ Win7-Alpha”。 我不想要“ Win7-Alpha”,我想要FQDN!
在Beta.ca DNS上,我可以看到我想要的FQDN,为什么它不给我?
答案 0 :(得分:0)
Microsoft似乎已经做了一些非常可疑的编码实践。据我所知,Windows不会为您提供另一个域的FQDN名称,但是您可以设置一个DNS后缀列表,该列表将强制使用域后缀查询名称。这似乎迫使Windows搜索与FQDN匹配的条目(即使仅使用主机名也可以这样做)。区别在于返回IP地址及其使用的名称时,它使用的名称是它从您指定的列表中创建的FQDN。
我已经确认,一旦有了包含列表的计算机,我就能使用我的功能,它将把另一个域中的主机名解析为正确的FQDN。
我个人认为它是如此愚蠢,以至于DNS可以匹配另一个域中的IP地址或主机名...。它找到了记录,但不会给您显示该记录的FQDN。当您查看记录时,那里似乎是对的! ...但除非拥有硬编码的DNS后缀列表,然后获得FQDN,否则该代码将无法正常使用。确实表现很差!
//Once you add Alpha.ca to the DNS Suffix List on the machine running this code....
//This will now correctly return Win7-Alpha.Alpha.ca
Dns.GetHostEntry("Win7-Alpha").HostName;