gpt4 book ai didi

c# - 在 Windows 7 上解析 NetBIOS 名称

转载 作者:可可西里 更新时间:2023-11-01 13:26:24 26 4
gpt4 key购买 nike

根据这个link , 从 Windwos Vista 开始不再支持 NetBIOS。果然,我再也无法从网络属性中看到任何 NetBIOS 名称。

但是,当我在 Windows 7 上编写代码时,我仍然在很多地方遇到 NetBIOS 名称。例如

  1. 我仍然可以使用“MYDOMAIN\Harvey”登录我的机器,我认为 MYDOMAIN 是一个 NetBIOS 名称。
  2. 环境变量 COMPUTERNAME 和 USERDOMAIN 仍然是 NetBIOS 名称。我期待在这里看到 DNS 名称
  3. 我的 SQL Server Management Studio 中出现的 SQL Server 实例名称仍然类似于 MYMACHINE\Instance1。

我猜 Microsoft 仍然保留其中的一些部分以实现向后兼容性。我想了解 Windows 7 如何将 NetBIOS 名称解析为 IP 地址。我发现这篇文章解释了如何 NetBIOS name resolution有效,但恐怕在 Windows 7 中不再适用。至少我没有 WINS 服务器。

我的最后一个问题是如何以编程方式执行 NetBIOS 名称解析,最好是在 C# 中。我可以使用 PInvoke。

UDAPTE

Tridus 是对的。我可以使用 System.Net.Dns.GetHostAddresses("hostname") 来解析 NetBIOS 名称。我使用反射器来查看引擎盖下发生了什么。它正在调用 gethostbyname() from ws2_32.dll

Here ,它解释了 gethostbyname() 将执行 NetBIOS 名称解析。

  1. Check the local host name for a matching name.
  2. Check the Hosts file for a matching name entry.
  3. If a DNS server is configured, query it.
  4. If no match is found, attempt NetBIOS name-resolution.

关于本篇不支持NetBIOS之谜link ,我认为这只是表示不支持 API。 People in ServerFault认为 Windows 7 仍然支持 NetBIOS。

最佳答案

作为旧协议(protocol)的 NetBIOS 本身可能不受支持,但 SMB/CIFS 仍然受支持,这就是文件共享的\hostname 等仍然有效的原因。

至于如何解析名称,我能够做到这一点:

System.Net.Dns.GetHostAddresses("主机名")

我在一个域上,所以它可能只是附加一个 DNS 后缀并进行 DNS 查找,但它对我有用。试试看。 :)

关于c# - 在 Windows 7 上解析 NetBIOS 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4750736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com