平台:linux

描述:利用os.popen()函数调用系统命令nmap进行扫描,并用grep命令对扫描结果关键内容进行提取

代码

#!/usr/bin/env pthon

#--*--coding=utf-8--*--

import os

from terminaltables import AsciiTable

gateway = '192.168.1.1'

def scan():

scan = os.popen("nmap " + gateway + "/24 -n -sP").read()

f = open('scan.txt','w')

f.write(scan)

f.close()

devices = os.popen(" grep report scan.txt | awk '{print $5}'").read()

devices_mac = os.popen("grep MAC scan.txt | awk '{print $3}'").read() + os.popen("ip addr | grep 'state UP' -A1 | tail -n1 | awk '{print $2}' | cut -f1 -d'/'").read().upper() # get devices mac and localhost mac address

devices_name = os.popen("grep MAC scan.txt | awk '{print $4 ,S$5 $6}'").read() + "\033[1;32m(This device)\033[1;m"

table_data = [

['IP Address', 'Mac Address', 'Manufacturer'],

[devices, devices_mac, devices_name]

]

table = AsciiTable(table_data)

print(table.table)

os.popen("rm -f scan.txt")

if __name__ == '__main__':

scan()

执行结果

关于terminaltables库的使用: https://robpol86.github.io/terminaltables/

实例代码:https://github.com/robpol86/terminaltables/blob/v3.1.0/example1.py(example2.py,example3.py)

>>> from terminaltables import AsciiTable

>>> table_data = [

['Heading1', 'Heading2'],

['row1 column1', 'row1 column2'],

['row2 column1', 'row2 column2'],

['row3 column1', 'row3 column2'],

]

>>> table = AsciiTable(table_data)

python获取局域网内的设备_python调用nmap探测局域网设备相关推荐

  1. python获取系统时间为字符串_python怎么获取系统当前的时间

    python获取系统当前的时间的方法:可以利用datetime.datetime.now()函数来获取.具体方法:1.导入datetime包:2.获取当前的时间,如[curr_time = datet ...

  2. python获取一个月之前日期_Python 获取几天前的时间

    Python 获取几天前的时间 计算几天前并转换为指定格式.import time import datetime # 先获得时间数组格式的日期 threeDayAgo = (datetime.dat ...

  3. python获取当前路径和上一层路径_python获取当前路径和上一级路径

    围观人数: 3 标签:getc   当前目录   路径   print   bsp   获取   目录   dir   dirname """获取当前目录"&q ...

  4. python只能使用内置数据库_Python只能使用内置数据库SQLite,无法访问MS SQLServer、ACCESS或Oracle、MySQL等数据库...

    Python只能使用内置数据库SQLite,无法访问MS SQLServer.ACCESS或Oracle.MySQL等数据库 答:× 幼儿主动与外部环境相互作用的最重要的方式是 ( ). 答:活动 K ...

  5. Python 获取网页内视频或图片

    使用BeautifulSoup 和 Requests,来获取网页内的视频和图片. import requests from bs4 import BeautifulSoup# Send request ...

  6. python 获取文件夹名称大全_python 获取指定文件夹下所有文件名称并写入列表的实例...

    如下所示: import os import os.path rootdir = "./pic_data" file_object = open('train_list.txt', ...

  7. python获取指定单元格内容_python读取excel表格指定位置的内容

    今天是第一次写博客,对之前学以致用的内容做一些总结,以备日后忘了或者可以给别人提供一些帮助.话不多说,开始写内容. python读取excel表格指定位置的内容 需求:现在有一个excel表格,里面有 ...

  8. python获取当前系统的日期_python怎么获取当前系统时间

    python获取当前系统时间,包括年月日,时分秒,主要通过Python中的datetime模块来实现. 下面我们就通过具体的代码示例,给大家详细介绍Python获取当前时间日期的实现方法. 代码示例如 ...

  9. python 获取路径的盘符_python获取磁盘号下盘符步骤详解

    这次主要教的是如何通过Python 获取Windows系统下的所有的磁盘盘符,以列表的形式展示出来,获取磁盘号下的盘符包括能够获取到我们正在插在电脑上的U盘,也可以读取到,希望能够对你们在学习过程中有 ...

最新文章

  1. java 判断object类型_Java学习-方法与多态的学习心得
  2. Nat. Commun. | 条件GAN网络和基因表达特征用于类苗头化合物的发现
  3. Seaborn使用set_context函数调整绘图标签和线条的大小、设置不同的模式、例如notebook模式、PPT模式、海报模式等、set_context函数可以指定绘图上下文并自动调整标签和线条
  4. js简单的条件语句判断
  5. [系统安全] 六.逆向分析之条件语句和循环语句源码还原及流程控制
  6. maya导出fbx没动画_Maya学习方法总结
  7. C#LeetCode刷题之#892-三维形体的表面积(Surface Area of 3D Shapes)
  8. 关于spark写入文件至文件系统并制定文件名之自定义outputFormat
  9. linux操作系统使用论文_Linux学习2 使用VirtualBox安装国产深度操作系统
  10. HFSS天线设计实例_不同介质的BLE S11曲线
  11. String类的常用方法总结
  12. tcpclient java_[Java] 网络-01 TCPClient / TCPServer
  13. 信号与系统(3.1)- RLC 串联电路的零输入响应
  14. android 平面图app_安卓app设计规范整理和Android APP设计篇
  15. Appium UI自动化的那些梗
  16. Python【二手车价格预测案例】数据挖掘
  17. jsPlumb流程图完整实例
  18. 计算机科学导论第五版第二章答案,计算机科学导论样题1答案
  19. Life feelings--10--inspiration and inner motivation
  20. 基于Wallpaper Engine的html插件罗盘时钟实现及简易桌面替换

热门文章

  1. Mysql的float double decimal
  2. 服务器打开虚拟机电源重启,虚拟机服务器自动重启
  3. 浏览器渲染机制面试_面试官不讲码德,问我Chrome浏览器的渲染原理(6000字长文)...
  4. 单目视觉机器人的循迹_机器人视觉系统传感器的关键技术盘点
  5. laravel 框架中使用数据库迁移添加注释
  6. 【uniapp】swiper 自定义轮播图指示点
  7. Spring的EL表达式
  8. 【win10】如何在桌面上,显示我的电脑
  9. Oracle中joint,oracle support
  10. 二叉树常用方法(一)