本文将利用python调用nmap完成扫描,并将扫描结果通过表格的方式展示出来。以便扫描者更加清晰明了的观察扫描结果。
#!/usr/bin/env pthon
#--*--coding=utf-8--*--
#kali blog(https://blog.bbskali.cn)
#逍遥子大表哥
import os
from terminaltables import AsciiTable
gateway = input('YOU IP Address:')
print ("\033[31m稍等 正在扫描\033[0m")
print ("当前网关变量为:",gateway)
def scan():
scan = os.popen("nmap " + gateway + " -n -P").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(本机)\033[1;m"
port = os.popen(" grep tcp scan.txt -A 0 | awk '{print $1,$2}' | cut -f1 -d'/' ").read()
table_data = [
['IP Address', 'Mac Address', 'Manufacturer','port'],
[devices, devices_mac, devices_name,port]
]
table = AsciiTable(table_data)
print(table.table)
os.popen("rm -f scan.txt")
if __name__ == '__main__':
scan()
版权属于:逍遥子大表哥
本文链接:https://cloud.tencent.com/developer/article/1921471
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。