![](/img/trans.png)
[英]How to resolve NetBIOS name for a given IP-address on Windows Phone 8
[英]Resolve NetBIOS name on Windows 7
根据此链接 ,从Windwos Vista开始不再支持NetBIOS。 果然,我再也看不到网络属性中的任何NetBIOS名称了。
但是,当我在Windows 7上编写代码时,我仍然在许多地方遇到NetBIOS名称。 例如
我猜测微软仍然保留了一些部分用于向后兼容。 我想了解Windows 7如何将NetBIOS名称解析为IP地址。 我发现这篇文章解释了NetBIOS名称解析的工作原理,但我担心在Windows 7中不再适用。至少我没有WINS服务器。
我的最后一个问题是如何以编程方式执行NetBIOS名称解析,最好是在C#中。 我可以使用PInvoke。
UDAPTE
Tridus是对的。 我可以使用System.Net.Dns.GetHostAddresses(“hostname”)来解析NetBIOS名称。 我用反射器看看引擎盖下发生了什么。 它从ws2_32.dll调用gethostbyname()
在这里 ,它解释了gethostbyname()将执行NetBIOS名称解析。
- 检查本地主机名是否匹配名称。
- 检查Hosts文件以查找匹配的名称条目。
- 如果配置了DNS服务器,请进行查询。
- 如果未找到匹配项,请尝试NetBIOS名称解析。
关于此链接中不支持的NetBIOS之谜,我认为这只是意味着不支持API。 ServerFault中的人认为Windows 7仍然支持NetBIOS。
可能不支持NetBIOS本身作为旧协议,但SMB / CIFS仍然是,这就是文件共享的\\ hostname的原因,这仍然有效。
至于如何解析名称,我能够做到这一点:
System.Net.Dns.GetHostAddresses( “主机名”)
我在一个域上,所以它可能只是附加一个DNS后缀并进行DNS查找,但它对我有用。 试试看。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.