在安装有nmap和python3的centos等linux服务器上直接运行运行
须在同目录下创建一个名为IP.txt的文件
在txt文件中放入需要扫描的IP
sport = "-p1-1000 "这个参数是扫描端口范围
import os
import re
class ShcIP(object):
def __init__(self, ip):
self.ip = ip
def open_post1(self): # 构建open的ip和端口
sport = "-p1-1000 "
print("扫描:"+self.ip)
ord_1 = "nmap -T5 -sS "+sport+self.ip
ord_2_1 = "nmap -T4 -sV -p"
lines = os.popen(ord_1).readlines()
os.popen(ord_1).close()
for line in lines:
a1 = re.findall("open", line)
try:
if str(a1[0]) == "open":
port_open = re.findall(r"(.*?)/", line)
port_open = str(port_open[0])
ord_2_1 = ord_2_1+port_open+","
with open("opened.txt", "a") as f:
f.write(self.ip+":"+line)
except:
a = 1
ord_2_1 = ord_2_1[:-1]
ord_2 = ord_2_1+" -A "+self.ip
return ord_2
def open_post2(self,req_sc): # 查看安全态势
req_err = re.findall(r"-sV -(.*?)-",req_sc)
if req_err[0] == " ":
print("未发现开放端口")
else:
os.system(req_sc)
print("-----------------------我是分界线-----------------------")
n_IP = open("ip.txt", 'r').readlines()
for s in n_IP:
sc_ip = ShcIP(s)
req_sc = sc_ip.open_post1()
print("查询开放端口范围:"+req_sc)
sc_ip.open_post2(req_sc)