使用环境:Raspberry 3b+ +netifaces+python-nmap+nmap

调用netifaces自动获取ip地址:

def get_gateways():return netifaces.gateways()['default'][netifaces.AF_INET][0]

将ip地址生成一个网段中所有ip地址的列表:

def get_ip_lists(ip):ip_lists = []for i in range(1, 256):ip_lists.append('{}{}'.format(ip[:-1], i))return ip_lists

主要实现代码及数据分割:

def main(ip=None):ip=get_gateways()ip_lists=get_ip_lists(ip)nmScan,temp_ip_lists,hosts = nmap.PortScanner(),[],ip[:-1]+'0/24'ret = nmScan.scan(hosts=hosts, arguments='-sP')print('扫描时间:'+ret['nmap']['scanstats']['timestr']+'\n命令参数:'+ret['nmap']['command_line'])for ip in ip_lists:print('ip地址:'+ip+':')if ip not in ret['scan']:temp_ip_lists.append(ip)print('扫描超时')else:print('已扫描到主机,主机名:'+ret['scan'][ip]['hostnames'][0]['name'])print(str(hosts) +' 网络中的存活主机:')for ip in temp_ip_lists:ip_lists.remove(ip)for ip in ip_lists:print(ip)

完整代码:

#!/usr/bin/python
#_*_ coding:utf8 _*_
import netifaces,nmapdef get_gateways():return netifaces.gateways()['default'][netifaces.AF_INET][0]def get_ip_lists(ip):ip_lists = []for i in range(1, 256):ip_lists.append('{}{}'.format(ip[:-1], i))return ip_listsdef main(ip=None):ip=get_gateways()ip_lists=get_ip_lists(ip)nmScan,temp_ip_lists,hosts = nmap.PortScanner(),[],ip[:-1]+'0/24'ret = nmScan.scan(hosts=hosts, arguments='-sP')print('扫描时间:'+ret['nmap']['scanstats']['timestr']+'\n命令参数:'+ret['nmap']['command_line'])for ip in ip_lists:print('ip地址:'+ip+':')if ip not in ret['scan']:temp_ip_lists.append(ip)print('扫描超时')else:print('已扫描到主机,主机名:'+ret['scan'][ip]['hostnames'][0]['name'])print(str(hosts) +' 网络中的存活主机:')for ip in temp_ip_lists:ip_lists.remove(ip)for ip in ip_lists:print(ip)if __name__ == '__main__':main()

实验截图:

转载于:https://www.cnblogs.com/canmeng/p/9681729.html

调用python-nmap实现扫描局域网存活主机相关推荐

  1. python 局域网扫描_Python 简化版扫描局域网存活主机

    [code]''' Python 简化版局域网扫描获取存活主机IP by 郑瑞国 1.ping指定IP判断主机是否存活 2.ping所有IP获取所有存活主机 #注: 若在Linux系统下 ping - ...

  2. nmap扫描局域网存活主机_第十五天Nmap篇:每日一练之Kali Linux面试题

    31.[不定项]Kali Linux中,Nmap网络扫描工具功能包括(  ) A.主机发现 B.端口扫描 C.版本探测 D.OS探测 (点击空白处查看内容) ▼ ABCD 32.Kali Linux中 ...

  3. shell 脚本——实现扫描局域网存活主机IP,并写到文本

    一.这里大篇幅的代码是对输入的ip格式进行过滤,如果只考虑简单的扫描可以直接拉到最底. 只写开始扫描注释之后的代码 ​​​​​​​------------ #/bin/bash #Scan the s ...

  4. nmap扫描局域网存活主机_安全工程师都在用的网络扫描软件,巧用ARP协议发现主机。第二节...

    前情回顾 前一节我们介绍了Nmap的安装和简单实用.不知道小伙伴们有什么疑问?如果有的话请在评论区留言,或者私信都可以.一定尽力解答哟! 在学习本节之前,我们一起回顾一下网络基本知识,网络分层模型大家 ...

  5. Linux下使用nmap扫描局域网存活的IP

    Linux下使用nmap扫描局域网存活的IP [root@z05 ~]# nmap -sP 192.168.0.0/24|grep 192. mass_dns: warning: Unable to ...

  6. python: 使用socket实现局域网不同主机通信。解决ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

    目录 1 socket的使用 1.1 TCP方法 1.2 UDP方法 2 局域网内连接 2.1 总结 1 socket的使用 1.1 TCP方法 在socket中使用socket.socket建立会话 ...

  7. python获取局域网在线主机_python通过scapy获取局域网所有主机mac地址示例

    python通过scapy获取局域网所有主机mac地址示例 发布于 2014-10-10 20:34:48 | 607 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python ...

  8. 基于Python Tkinter的多线程局域网扫描器

    #本文仅供参考有不足之处请指出 一.设计环境 系统:Windows 11 语言:python3.8 编译器:PyCharm 二.设计要求 1.局域网内的存活主机发现 2.扫描指定主机开放的端口 3.图 ...

  9. python扫描局域网端口和ip_python实现扫描局域网指定网段ip的方法

    一.问题由来 工作的局域网中,会接入很多设备,机器人上的网络设备就2个了,一个巨哥红外,一个海康可见光.机器人还有自身的ip. 有时候机器人挂的多了,设备维修更换中,搞来搞去就不记得ip是什么,用自带 ...

  10. php如何扫描局域网ip,python实现扫描局域网指定网段ip的方法

    一.问题由来 工作的局域网中,会接入很多设备,机器人上的网络设备就2个了,一个巨哥红外,一个海康可见光.机器人还有自身的ip. 有时候机器人挂的多了,设备维修更换中,搞来搞去就不记得ip是什么,用自带 ...

最新文章

  1. 继承单例模式 php_详解PHP单例模式之继承碰见的问题
  2. J2ME下访问.net的webservice
  3. Jerry Wang的微信公众号开发系列文章
  4. SprinBoot易学难精
  5. devtools 无法加载 sourcemap_用 babel-plugin 实现按需加载
  6. DevOps是敏捷在软件开发团队的另一应用
  7. docker架构——第一本docker书
  8. 贪吃蛇的c语言运行程序,用C语言编写贪吃蛇游戏的程序
  9. 360提高计算机运行速度,360安全卫士如何提高开机和运行速度
  10. web聊天类数据库功能表结构如何设计?
  11. 相关系数计算机计算方法,计算相关系数的公式(相关系数的计算方法)
  12. docker容器端口映射
  13. 编译报错R_ARM_THM_MOVW_ABS_NC against `a local symbol
  14. html与js的相互转化,JS和HTML互转
  15. 关于视频号主页实现一键添加个人微信功能的思路
  16. CS1703 C# Multiple assemblies with equivalent xxx... and. Remove one of the duplicate references.
  17. ip地址转换成16进制long
  18. 我的新版edge插件推荐!!!
  19. php imap 安装_php怎么安装imap扩展
  20. Java+MySQL基于springboot校园博客系统#毕业设计

热门文章

  1. Cortex-M3 (NXP LPC1788)之IIC控制器
  2. 线性代数————思维导图(上岸必备)(向量组)
  3. ffmpeg 再编译使用 ffmpeg-gl-transition
  4. ImageJ(Fiji)安装
  5. MDK5与Keil C51安装、合并、pack支持包的安装、STC芯片选型头文件的添加、界面美化(保姆级教程)
  6. Hbase 二级索引
  7. ppt课堂教学流程图_ppt怎么做流程图 ppt做流程图的方法是什么
  8. 基于c51的节日彩灯控制器的设计
  9. 北斗卫星导航系统基础篇之(三)——北斗缩略词详解
  10. 通信原理及系统系列3—— 基于卷积编码的2ASK通信系统设计(非相干解调)