有一种方法来获得一个Linux的唯一networking上的计算机列表?

在Windowsnetworking上,我习惯使用“查看工作组计算机”来浏览我的工作组。

现在我只在一个linux的networking上。 我现在可以使用samba,只需要做同样的事情,但是有一种方法可以在不依赖于microsoft wins / browser协议的情况下实现同样的目的?

有什么Linux软件可以用来维护一个计算机列表,即使他们在不同的子网?

谢谢您的回答。

在Linux上进行networking映射的最好方法是使用“nmap”,这就是networking映射器。

你可以通过以下两种方式之一来完成。 首先是一个ping扫描,它只是发送一个ping到IPs,并报告回应的IP。 例如:

msimmons@msimmons-laptop:~$ nmap -sP 192.168.1.1-254 Starting Nmap 4.53 ( http://insecure.org ) at 2009-12-12 07:52 EST Host Wireless_Broadband_Router.home (192.168.1.1) appears to be up. Host 192.168.1.3 appears to be up. Host 192.168.1.4 appears to be up. Host msimmons-laptop.home (192.168.1.8) appears to be up. Host 192.168.1.100 appears to be up. Nmap done: 254 IP addresses (5 hosts up) scanned in 0.869 seconds 

这工作得很好,但是很多机器都设置了防火墙来阻止传入的ICMP数据包,所以不会回复ping请求。

如果是全Linuxnetworking,则可以扫描端口22,即ssh端口。 这样做是这样的:

 root@msimmons-laptop:~# nmap -sS -p 22 192.168.1.1-254 | grep -B3 open | grep ports Interesting ports on 192.168.1.4: Interesting ports on 192.168.1.5: Interesting ports on msimmons-laptop.home (192.168.1.8): 

你可能想要注意到我已经通过grep几次parsing了nmap的输出。 缺省情况下,输出是详细的,并且nmap会报告每个find的主机,无论端口是否处于打开状态。 由于我只关心那个开放端口的主机,所以我只是在结果是端口被打开的情况下刷出了报告IP的线路。

而且,我执行了一个“syn”扫描,它只从包含TCP握手协议的三个步骤中发起一步。 这意味着它能够识别打开,closures和过滤的端口。 它还需要root权限才能创build执行此类扫描所需的原始套接字。

一旦你这样做,去物理开关,检查灯。 如果有更多的灯亮了,那么请按照电缆进行调查。

您可以使用avahi-browsemdns-scan列出所有运行avahi-daemon计算机(Avahi是Apple的Bonjour多播DNS的开源实现)。