局域网络内如何扫描已连接设备的信息

描述

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

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

LAN

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


LAN LAN

Nmap可以在命令行中直接使用,但需要添加环境变量: LAN

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

 

https://pypi.org

 

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

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

LANLAN

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

LANLAN

使用Python源码如下:

 

# LanIpScan.py
import netifaces
import nmap

class LanIpScan:
    # 获取网关
    def get_gateways(self):
        return netifaces.gateways()['default'][netifaces.AF_INET][0]
        # 获取到本地网关地址,这里返回192.168.1.1

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

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

    # 查看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):
        survial_devices = []
        for ip in ip_lists:
            scan_result = LanIpScan.scan_ip_survial(ip)
            if scan_result:
                survial_devices.append(scan_result)
                print(scan_result)
        return survial_devices

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

 

  审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分