有没有一种简单的方法可以通过 OS X (Lion) 命令行或 Finder 确定同一子网(家庭网络中)上的 Windows 计算机的 IP 地址?假设计算机本身不易访问。
我知道的有以下几种方式:
- 请参阅路由器(dhcp 服务器)的 Web 管理页面。
- 用于
arp -a
获取最近访问的 IP 列表并从那里进行猜测。
该机器确实出现在 Finder 中,所以我知道它的网络计算机名称(我猜是 WINS 名称?),但不知道它属于哪个工作组。我们不在域中。
我不完全确定 OS X 如何“映射” SMB/WINS 名称,因为执行诸如 ping“mywindowsbox”之类的操作会失败,ping“mywindowsbox.local”也会失败。
答案1
使用smbutil lookup HOSTNAME
(来源)。
这将为您提供给定 NetBIOS 名称的 IP 地址。
我推测它与 Finder 连接到 URL 时所做的相同smb://
,因此它可能受到相同的限制(我实际上不知道这些是什么,但我注意到 Finder 并不总是能够在本地网络中查找 Windows 机器,而其他 Windows 客户端似乎没有问题)。
答案2
您无权访问 Windows 机器吗?
你能 ping 通 Windows 机器的 IP 吗?如果不能,那么可能是 Windows 机器的软件防火墙阻止了 ping。
此外,如果您有权访问路由器,它可能会列出 Windows 机器的主机名。
更新:嗯,Finder 中显示的名称应该是 PC 的主机名。
答案3
如果您安装了 nmblookup,请尝试:
nmblookup 主机名
主机名将是 WINS 名称。这可能返回 IP 地址。另请参阅 nmblookup 手册页以了解可能实现此功能的其他选项。
答案4
如果您处于封闭网络(私有)中,并且处于典型的 C 类子网(255.255.255.0)中,则可以 ping XXX.XXX.XXX.255。.255 地址是 C 类的广播地址。理论上,子网上的所有主机都会向您发送 ICMP 回显。这应该可以缩小网络上实际活动的主机范围。从那里,您可以使用网络实用程序(/Applications/Utilities/Network Utility.app)进行一些指纹识别和端口扫描,以确定它是哪一个。
然而,如果Windows机器禁用ICMP回显,这个计划就失败了。
请注意:*.local 域用于 Bonjour。除非 Windows 机器有 Bonjour(或 mDNSResponder),否则查询本地域将不起作用。