本篇文章给大家带来的内容是关于如何调用python-nmap来实现扫描局域网存活主机(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

使用环境: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,nmap

def 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_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)

if __name__ == '__main__':

main()

实验截图:

怎么用python扫描主机_如何调用python-nmap来实现扫描局域网存活主机(代码)相关推荐

  1. c调用python函数_python - Linux C调用Python 函数

    1.Python脚本,名称为py_add.py def add(a=,b=): print('Function of python called!') print('a = ',a) print('b ...

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

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

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

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

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

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

  5. python中如何调用函数_如何调用python中的内置函数?(实例解析)

    对于第一次接触到python这门编程语言的朋友来说,刚刚开始学习python编程的时候对于python函数调用这一方面的了解比较少,在这篇文章之中我们就来了解一下python怎么调用函数. Pytho ...

  6. 微信python天天学_刚学Python一礼拜!我就能模拟登录微信公众号!我是天才吧!...

    最近迷上了用python写爬虫,一发不可收拾,下面我们来说一下如何实现模拟登录微信公众号平台. 故事起因,由于本人注册了一个公众号,想着如何通过脚本实现像部分用户发送消息呢? 如何实现一键上传材料呢? ...

  7. python脚本编写_如何用Python包编写一个简单的脚本,表达你对父母的爱?

    全文共2800字,预计学习时长6分钟 在繁忙的工作生活中,我们经常忘记给所爱的人发WhatsApp.本教程将使用Python包Twilio编写一个简单的Python脚本来发送WhatsApp消息.我们 ...

  8. python求加速度_如何利用Python 为自然语言处理加速度

    自去年发布 Python 的指代消解包(coreference resolution package)之后,很多用户开始用它来构建许多应用程序,而这些应用与我们最初的对话应用完全不同. 利用 spaC ...

  9. python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)

    就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.使用这个小型语言,你可以为想要匹配的相应字符串集指定规则:该 ...

  10. python框架漏洞_注意!Python中的10个常见安全漏洞及修复方法

    编写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例.然而,许多 ...

最新文章

  1. 百度程序员妻子质疑老公不忠!每天很晚回家!周五下班不回家,说领导带他喝酒!结婚一年就出轨?...
  2. 不可思议!英伟达新技术训练NeRF模型最快只需5秒,代码已开源
  3. kafka查看broker上主副本_kafka分区及副本在broker的分配
  4. 将CSV和SQL数据加载到Pandas中
  5. java 性能框架_Java Fork Join 框架(四)性能
  6. 阿里云最新虚拟化研发岗招聘
  7. 操作系统实验报告-多线程编程解决进程间同步和互斥问题
  8. DatagramPacket.getData()与DatagramPacket.getLength()的误区
  9. Win11设置定时关机命令没反应怎么办?
  10. 计算机二级office查分数,3月份office计算机二级内网查分90,写下一点经验给后来人...
  11. 原生android 操作系统,为什么氢OS被称为最接近原生安卓的操作系统?
  12. CMD查看局域网在线IP
  13. 风机疲劳载荷谱转SACS疲劳载荷定义文件
  14. 怎么利用shell批量把图片改名(数字排序)
  15. HBase Flush 解析
  16. 3DMARK 06超频后成绩上万
  17. 全面了解学习Spring
  18. 5、canvas 渐变填充色
  19. STM32循迹PWM调速及阿克曼舵机转向
  20. Linux0.11内核源码解析01

热门文章

  1. 用C语言递归实现火车调度算法详解
  2. [Pytorch系列-33]:数据集 - torchvision与CIFAR10/CIFAR100详解
  3. 在keil 中 导入 stc 芯片组
  4. 微信小程序——定位(根据经纬度算距离)
  5. java 程序计数器_JVM入门系列之程序计数器
  6. Web3D软件WebMax正式版发布
  7. 南开100题c语言计算机二级,3月计算机二级C语言题库南开100题.pdf
  8. 日志分析的大救星 — — 集算器
  9. 认识计算机系统基本结构,高中信息技术计算机基础应用课件:03认识计算机系统的组成与作用...
  10. java中语言转换方法_语言切换的三种方法