龙空技术网

「安全测试」使用python+nmap 实现局域网内主机扫描

代码碎片 1388

前言:

当前大家对“python获取局域网中的ip和mac地址”大体比较着重,同学们都想要了解一些“python获取局域网中的ip和mac地址”的相关文章。那么小编也在网摘上收集了一些关于“python获取局域网中的ip和mac地址””的相关文章,希望兄弟们能喜欢,咱们一起来学习一下吧!

说明:

假如不知道局域网内其它设备(手机、电视、电脑等)的ip或者MAC地址咋办[吐舌],可以使用python+nmap 局域网内主机扫描,然后根据扫描的结果分析,设备是什么系统、什么厂商等信息

代码:

import nmapimport sysimport jsondef get_lan_host(ip):        nm = nmap.PortScanner()    result = nm.scan(hosts=ip, arguments='-sn -PR')# -sn不进行端口扫描    print ('返回结果:\n',json.dumps(result,indent=4,ensure_ascii= False))    n=0    for i,j in result['scan'].items():        try:            mac = j['addresses']['mac']        except Exception as e:            #print (e)            mac = '空'        if j['vendor'] == {}:            vendor = '空'        else:            vendor = list(j['vendor'].values())[0]        n=n+1        print (i,mac,vendor)    print (n)                def main(ip):        test_item = ["主机列表"]        tabal_head = ["IP地址","MAC地址","厂商","操作系统","OS版本"]    a = get_lan_host(ip)    return a    if __name__ == '__main__':    ip = '192.168.0.0/24' # 扫描局域网192.168.0.1到192.168.0.255之前的ip主机    #ip = '192.168.75-77.0/24'    excel_file_name = '局域网主机扫描测试报告.xls'        all_data = main(ip)

执行:

测试结果:

标签: #python获取局域网中的ip和mac地址 #python调用nmap扫描全端口 #pythonnmap 官方手册