如何从PowerShell获取当前计算机的NetBIOS(又名"简称")域名?
$ ENV:USERDOMAIN显示当前用户的域,但我想要当前计算机所属的域.
我发现你可以在VBScript中很容易地做到这一点,但显然在PowerShell中使用ADSystemInfo并不是很好.
更新
这是我的最终解决方案,其中包含使用Win32_NTDomain的建议,但过滤到当前计算机的域
$wmiDomain = Get-WmiObject Win32_NTDomain -Filter "DnsForestName = '$( (Get-WmiObject Win32_ComputerSystem).Domain)'"
$domain = $wmiDomain.DomainName
Run Code Online (Sandbox Code Playgroud) 在iOS上有什么方法可以NetBIOS使用IP地址解析名称?
可以NetBIOS使用终端命令在Mac上解析名称:
smbutil -v status -ae
smbutil是开源的,所以你可以在这里找到它:http: //www.apple.com/opensource/ - > http://opensource.apple.com//source/smb/
在GitHub上也一样:https: //github.com/unofficial-opensource-apple/smb
但是util广泛使用私有和Mac OS特定的框架,因此Xcode甚至无法编译iOS的源代码.
给定一台机器的IP地址,如何在C#中以编程方式获取其NetBIOS名称?我知道我可以通过"nbtstat -A"从命令行获取它,但我正在寻找更好的解决方案.
我想通过Android手机发现连接到我的Wifi网络的所有设备(主机名,MAC地址和供应商名称).设备上没有运行公共服务.
尝试了以下方法:
inetAddress.isReachable()).nbstat查询NETBIOs名称的请求在某些设备中有效.其中一些给PortNotOpenException(端口137没有打开).某些其他设备未NETBIOs启用名称服务.尝试使用jcifs为Android.能够使用获取主机名
nbtAddress.getByName(ip)
Run Code Online (Sandbox Code Playgroud)循环子网中的所有IP地址.此方法提供所有主机名,无论它们是否处于活动状态.
在网络上查找所有ACTIVE设备的最佳方法是什么?像FING这样的应用似乎就是这么做的.
编辑:我试图分析Android FING应用程序如何做到这一点.
同时,我尝试在IDE上打印我的Android手机的arp条目.
随着FING应用程序中的发现进展,条目数量不断增加.
发现开始前有5个条目
随着发现的进展,增加到1025个条目.
发现结束后减少到150个条目.
究竟发生了什么?没有ICMP请求.可以在Android应用程序中发送ARPRequests吗?请帮忙.
我正在使用传统的ASP Classic解决方案,它是负载平衡的(通过外部硬件,并且有一个IIS站点,其主目录是UNC路径.我被告知目前存在以下问题:
现在,这一切听起来有点奇怪.如果我使用默认设置设置新的Windows 2003服务器,并使用它来托管包含15,000个.asp文件的ASP Classic应用程序,使用服务器上的共享作为IIS站点的主目录,我是否会遇到这些问题?如果是这样,有没有办法在不改变架构的情况下对付它们?
(澄清一下,"负载平衡"很重要的唯一原因是负载平衡是文件在服务器上共享的原因.如果不需要负载平衡,则文件可以在本地磁盘上.)
我有几个通过IP地址识别的Windows机器.我想编写一个远程查询计算机并获取其名称的应用程序.我不能依赖DNS,因为它不能提供准确的结果.
我听说有一个可以使用的NetBIOS API,但我不熟悉这个API.
我可以在DOS/windows下使用什么网络工具来轻松查找netbios主机的IP地址?
例如在Linux(ubuntu)下我可以找到如下所示的ip地址:
# nmblookup imac
querying imac on 192.168.1.255
192.168.1.75 imac<00>
Run Code Online (Sandbox Code Playgroud)
现在,这是无线连接时macbook的IP
但在Windows下我不能ping它:
C:\>ping imac
Pinging imac.gateway.2wire.net [192.168.1.68] with 32 bytes of data:
Request timed out.
Run Code Online (Sandbox Code Playgroud)
我能找到的最接近的工具返回两个IP(它返回硬连线的IP,即使它通过无线连接获得了不同的IP
C:\>nslookup imac
Address: 192.168.1.254
Name: imac.gateway.2wire.net
Addresses: 192.168.1.68, 192.168.1.75
Run Code Online (Sandbox Code Playgroud)
是不是有一个Windows命令只返回主机的活动IP地址?
简而言之 - 如何将 NETBIOS 域转换为 FQDN?
详细信息:假设我在域 A 中,并且我拥有域 B 的用户凭据,该域与域 A 具有信任关系(我可以对凭据进行身份验证)。当我拥有的只是来自该域的某些经过身份验证的用户的凭据(包括 netbios 域名)时,如何获取域 B 的 FQDN?
我正在用 C# 编码,但也欢迎使用 COM/WMI/Win32 解决方案。
根据此链接,从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.
检查计算机是否处于活动状态并响应(比如ping/NetBios)的最简单方法是什么?我想要一种确定性的方法,我可以限时.
一种解决方案是在单独的线程中简单访问共享(File.GetDirectories(@"\ compname")),如果花费的时间过长则终止该线程.
netbios ×10
c# ×4
ip-address ×2
networking ×2
windows ×2
android ×1
asp-classic ×1
discovery ×1
dns ×1
fqdn ×1
iis ×1
ios ×1
powershell ×1
protocols ×1
unc ×1
wmi ×1