python扫描网络端口

from prettytable import PrettyTable
import subprocess
import re

def get_port_status(port, data):
port_status = re.findall(r"{0}/tcp (\S+) .*".format(port), data.decode(‘utf-8’))[0]
return port_status

Router_Table = PrettyTable([“Ip Address”,“Opened Services”])

router_ports = {“FTP”: 21,
“SSH”: 22,
“TELNET”: 23,
“SMTP”: 25,
“HTTP”: 80,
“HTTPS”: 443,
“SNMP”: 161,
“BGP”: 179,
“LDP”: 646,
“RPCBIND”: 111,
“NETCONF”: 830,
“XNM-CLEAR-TEXT”: 3221}

live_hosts = {“192.168.182.1”, “192.168.182.129”, “192.168.182.132”}
services_status = {}

for ip in live_hosts:
for service, port in router_ports.items():
p = subprocess.Popen([“sudo”, “nmap”, “-p”, str(port), ip], stdout=subprocess.PIPE)
port_status = get_port_status(port, p.stdout.read())
services_status[service] = port_status
services_status_joined = “\n”.join(“{}:{}”.format(key,value) for key,value in services_status.items())

Router_Table.add_row([ip, services_status_joined])

print(Router_Table)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值