400-035-6699
当前位置: 首页 » 技术支持 » 博文资讯 »

局域网络内设备扫描方法

基于局域网设备管理的需求,我们需要查找局域网络内已连接的设备,并获取这些设备的ip地址及设备名称。为了实现这一功能,我们可以使用多种工具和技术。首先,我将介绍几种常用的网络扫描工具,然后解释如何通过Python编程来实现局域网内设备的自动扫描。
常用的网络扫描工具包括Advanced IP SCANner和Nmap。Advanced IP Scanner是一款功能强大的免费软件,用于扫描局域网中的所有设备。它可以快速发现网络中的设备,并提供详细的设备信息。Nmap(network Mapper)是一款开源的网络扫描工具,它可以帮助我们检测网络中的主机、端口和服务。通过扫描,我们可以了解设备的在线状态、开放的端口、运行的操作系统等信息。
在Python中,我们可以通过调用nmap和netifaces库来实现局域网内设备的自动扫描。首先,我们需要安装这两个库。nmap模块可以通过在命令行中执行“pip install nmap”来安装。netifaces模块是一个Python库,用于获取网络接口配置信息。安装完成后,我们就可以编写Python脚本来扫描局域网内的设备。
以下是实现局域网内设备自动扫描的Python源码:
```python import netifaces import nmap
class LANIpScan: # 获取网关 def get_gateways(self): return netifaces.gateways()['default'][netifaces.AF_INET][0]
# 获取IP地址列表 def get_ip_lists(self, gateway): ip_lists = [] for i in range(1, 256): ip_lists.append(f"{gateway[:-1]}{i}") return ip_lists
# 扫描IP地址 def scan_ip_survial(self, ip): nmScan = nmap.PortScanner() nmScan.scan(hosts=ip, arguments='-sP') try: nmScan[ip] return {'ScanInfo': nmScan[ip]} except KeyError: return "此IP地址无效", ip
# 获取设备信息 def get_all_devices(self, ip_lists): survival_devices = [] for ip in ip_lists: scan_result = self.scan_ip_survial(ip) if scan_result: survival_devices.append(scan_result) print(scan_result) return survival_devices
if __name__ == '__main__': lan_ip_scan = LanIpScan() gateway = lan_ip_scan.get_gateways() ip_lists = lan_ip_scan.get_ip_lists(gateway) lan_ip_scan.get_all_devices(ip_lists) ```
在这段代码中,我们首先定义了一个LanIpScan类,其中包含了获取网关、获取IP地址列表、扫描IP地址和获取设备信息的方法。在主函数中,我们创建了LanIpScan类的实例,获取网关地址和IP地址列表,然后调用get_all_devices方法来扫描局域网内的设备。
通过以上方法,我们可以轻松地扫描局域网内的设备,并获取它们的IP地址、设备名称等信息。这对于局域网设备管理和维护具有重要意义。希望这篇文章能帮助到您,如有疑问,请随时提问。

基于局域网设备管理考虑,查找局域网络内已连接设备,并获取到这些设备的IP地址及设备名称,常用工具有Advanced IP Scanner、Nmap等。

局域网络内设备扫描方法

Advanced IP Scanner,是一款可靠且免费的网络扫描分析LAN,该程序可扫描局域网络内所有设备。

59ad5786-9082-11ed-bfe3-dac502259ad0.png

Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包,是一个网络连接端扫描软件,用来扫描网上开放的网络端口,用于网络发现和安全审计的工具,可以检测当前局域网内已连接设备,及目标主机是否在线,端口开放情况,侦测运行的服务类型及版本信息,侦测操作系统与设备类型等信息。

 
59c21b44-9082-11ed-bfe3-dac502259ad0.png
 
59e783b6-9082-11ed-bfe3-dac502259ad0.png

Nmap可以在命令行中直接使用,但需要添加环境变量: 5a0f03aa-9082-11ed-bfe3-dac502259ad0.png

在已安装Nmap软件的基础上,通过Python调用nmap、netifaces库,实现局域网内已连接设备的扫描,Python相关库下载地址:

HTTPS://pypi.org

(若pip install [package_name]无法使用时,推荐使用该方法)

nmap模块安装:进入已解压路径下,通过命令python setup.py install进行安装。

5a1c3ed0-9082-11ed-bfe3-dac502259ad0.png5a29b858-9082-11ed-bfe3-dac502259ad0.png

netifaces模块安装:进入已解压路径下,通过命令python setup.py install进行安装。

5a541e9a-9082-11ed-bfe3-dac502259ad0.png5a77243a-9082-11ed-bfe3-dac502259ad0.png

使用Python源码如下:

#LanIpScan.py
importnetifaces
importnmap

classLanIpScan:
#获取网关
defget_gateways(self):
returnnetifaces.gateways()['default'][netifaces.AF_INET][0]
#获取到本地网关地址,这里返回192.168.1.1

#returndict(dict(netifaces.gateways())['default'])[2][0]
#不推荐使用这种方式,原因是该模块已经定义了一些常量及特定的用法

#获取IP
defget_ip_lists(self,gateway):
ip_lists=[]
foriinrange(1,256):
ip_lists.append('{}{}'.format(gateway[:-1],i))
#更改网关的最后一项数据并添加到列表中
returnip_lists
#返回列表['192.168.1.1',-->'192.168.1.255']

#查看IP地址
defscan_ip_survial(self,ip):
nmScan=nmap.PortScanner()
nmScan.scan(hosts=ip,arguments='-sP')
try:
nmScan[ip]
return{'ScanInfo:':nmScan[ip]}
except:
KeyError
return"此IP地址无效",ip

#获取设备信息
defget_all_devices(self,ip_lists):
survial_devices=[]
foripinip_lists:
scan_result=LanIpScan.scan_ip_survial(ip)
ifscan_result:
survial_devices.append(scan_result)
print(scan_result)
returnsurvial_devices

if__name__=='__main__':
LanIpScan=LanIpScan()
gateway=LanIpScan.get_gateways()
ip_lists=LanIpScan.get_ip_lists(gateway)
LanIpScan.get_all_devices(ip_lists)

审核编辑:汤梓红

【限时免费】一键获取网络规划系统模板+传输架构设计+连通性评估方案

局域网相关文章

服务电话:
400-035-6699
企服商城