Har*_*wok 6 c# windows protocols netbios
根据此链接,从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查找,但它对我有用.试试看.:)
| 归档时间: |
|
| 查看次数: |
8816 次 |
| 最近记录: |