我想在我的应用程序中列出同一个本地网络中的设备。我为此做了大量研究,但我找不到我想要的。
例如: 我有3台设备连接到默认网关地址为192.168.1.1的路由器。它们的IP地址为www.example.com、www.example.com、www.example.com等。我想列出这些设备的IP地址和MAC地址、设备类型(PC、电话、打印机等)。 192.168.1.3 , 192.168.1.8 , 192.168.1.10 etc. I want to list the IP address and MAC address, device type (PC, Phone, Printer etc.) of these devices.
我可以通过用lan_scanner库扫描来找到ip地址。但是,正如我上面提到的,我想访问更详细的信息。
作为我研究的结果,我到达了multicast_dns库,但我不能理解如何按我想要的那样使用它。
我应该遵循什么路线图?
提前感谢您的回答。
2条答案
按热度按时间bfnvny8b1#
我想你可以试试nmap。
nmap -FO [subnet]/[mask] -其中-F已启用快速模式(否则子网扫描将花费一些时间),-O用于操作系统猜测,这并不总是顺利工作,但应该会给予相当不错的输出
nle07wnf2#
没有简单的答案或任何类型的“魔术子弹”软件,将能够绝对确定什么类型的设备,一个特定的IP地址属于。唯一的信息,你是保证能够获得通过
arp
请求是设备的IP地址及其MAC地址,因为MAC地址是(我相信)OSI模型的第2层和IP地址将在第3层,并且该信息必须在设备被允许在网络上通信之前对网络可用。但是高级信息,例如IP地址被分配到的设备的类型,在OSI模型中没有定义标准,因此制造产品的公司可以随心所欲地提供信息。例如,当我使用nmap扫描我的网络时,我知道我的网络上有一堆基于IP的电灯开关,但MAC地址显然是不能识别的供应商名称-但所有的mac地址必须有一个供应商名称分配给他们,我“我确信有各种各样的可搜索的数据库公开提供,能够查询任何给定的MAC地址,并获得拥有该MAC的供应商的名称地址。但是,可以将任何你想要的mac地址分配给任何以太网端口,如果这些电灯开关有自己的自定义mac地址分配给它们,那么识别供应商将是不可能的。
我的观点是,除非设备被配置为允许您询问它并找出它是什么,否则您将没有标准的方法来获得该信息,因为该信息不是OSI模型或任何以太网协议标准的要求。
太阳风has a program可能会给予你最好的成功机会,但它不是免费的。
就可以询问网络上的设备的公开可用的自由软件而言,NMAP可能是最佳选择,因为当试图识别设备正在运行的操作系统时,它使用“最佳猜测”,并且在某些情况下,您可以幸运地基于设备正在运行的操作系统来识别设备的类型。