python获取局域网内的设备_python调用nmap探测局域网设备
平台: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探测局域网设备相关推荐
- python获取系统时间为字符串_python怎么获取系统当前的时间
python获取系统当前的时间的方法:可以利用datetime.datetime.now()函数来获取.具体方法:1.导入datetime包:2.获取当前的时间,如[curr_time = datet ...
- python获取一个月之前日期_Python 获取几天前的时间
Python 获取几天前的时间 计算几天前并转换为指定格式.import time import datetime # 先获得时间数组格式的日期 threeDayAgo = (datetime.dat ...
- python获取当前路径和上一层路径_python获取当前路径和上一级路径
围观人数: 3 标签:getc 当前目录 路径 print bsp 获取 目录 dir dirname """获取当前目录"&q ...
- python只能使用内置数据库_Python只能使用内置数据库SQLite,无法访问MS SQLServer、ACCESS或Oracle、MySQL等数据库...
Python只能使用内置数据库SQLite,无法访问MS SQLServer.ACCESS或Oracle.MySQL等数据库 答:× 幼儿主动与外部环境相互作用的最重要的方式是 ( ). 答:活动 K ...
- Python 获取网页内视频或图片
使用BeautifulSoup 和 Requests,来获取网页内的视频和图片. import requests from bs4 import BeautifulSoup# Send request ...
- python 获取文件夹名称大全_python 获取指定文件夹下所有文件名称并写入列表的实例...
如下所示: import os import os.path rootdir = "./pic_data" file_object = open('train_list.txt', ...
- python获取指定单元格内容_python读取excel表格指定位置的内容
今天是第一次写博客,对之前学以致用的内容做一些总结,以备日后忘了或者可以给别人提供一些帮助.话不多说,开始写内容. python读取excel表格指定位置的内容 需求:现在有一个excel表格,里面有 ...
- python获取当前系统的日期_python怎么获取当前系统时间
python获取当前系统时间,包括年月日,时分秒,主要通过Python中的datetime模块来实现. 下面我们就通过具体的代码示例,给大家详细介绍Python获取当前时间日期的实现方法. 代码示例如 ...
- python 获取路径的盘符_python获取磁盘号下盘符步骤详解
这次主要教的是如何通过Python 获取Windows系统下的所有的磁盘盘符,以列表的形式展示出来,获取磁盘号下的盘符包括能够获取到我们正在插在电脑上的U盘,也可以读取到,希望能够对你们在学习过程中有 ...
最新文章
- java 判断object类型_Java学习-方法与多态的学习心得
- Nat. Commun. | 条件GAN网络和基因表达特征用于类苗头化合物的发现
- Seaborn使用set_context函数调整绘图标签和线条的大小、设置不同的模式、例如notebook模式、PPT模式、海报模式等、set_context函数可以指定绘图上下文并自动调整标签和线条
- js简单的条件语句判断
- [系统安全] 六.逆向分析之条件语句和循环语句源码还原及流程控制
- maya导出fbx没动画_Maya学习方法总结
- C#LeetCode刷题之#892-三维形体的表面积(Surface Area of 3D Shapes)
- 关于spark写入文件至文件系统并制定文件名之自定义outputFormat
- linux操作系统使用论文_Linux学习2 使用VirtualBox安装国产深度操作系统
- HFSS天线设计实例_不同介质的BLE S11曲线
- String类的常用方法总结
- tcpclient java_[Java] 网络-01 TCPClient / TCPServer
- 信号与系统(3.1)- RLC 串联电路的零输入响应
- android 平面图app_安卓app设计规范整理和Android APP设计篇
- Appium UI自动化的那些梗
- Python【二手车价格预测案例】数据挖掘
- jsPlumb流程图完整实例
- 计算机科学导论第五版第二章答案,计算机科学导论样题1答案
- Life feelings--10--inspiration and inner motivation
- 基于Wallpaper Engine的html插件罗盘时钟实现及简易桌面替换