Masscan扫描后的IP端口整合
程序员文章站
2022-05-15 22:09:34
...
看的懂得自然看得懂哈 虽然有点鸡肋 做个练习
#coding=utf-8
import re
import time
#import Queue
#1、正则提取scan.txt中的ip放入一个All_Clear_Ip的数组然后再进行去重(这个数组中的ip是不重复的)
# All_Clear_Ip['1.1.1.1','2.2.2.2','3.3.3.3']
#2、然后把每行提取出来整理成ip:port的形式放到一个All_Ip_Port的数组中
# All_Ip_Port['1.1.1.1:20','1.1.1.1:123','2.2.2.2:78','2.2.2.2:99','3,3,3,3:77','3.3.3.3:87']
#3、再接着我们遍历All_Clear_Ip数组 把第一个ip提取出来 再判断All_Ip_Port的数组的ip是不是与第一个提取出来的ip相对 是的话
# 假设第一个提取出来的ip是1.1.1.1
# 然后split(':')[0]分割 取前面的一部分
# 再接着ip跟前面的部分进行判断如果是的话 那么把整个1.1.1.1:20都提取出来(这里提取出来都储存到哪里是一个问题) 依次判断完 再继续把第二个ip提取继续判断
# 储存的问题:放到字典里面
#[
# {
# ip:'1.1.1.1',
# tolife:'1.1.1.1:80',
# },
# {
# ip:'2.2.2.2',
# tolife:'2.2.2.2:99'
# }
#]
#queue = Queue.Queue()
All_Ip = list()
All_Clear_Ip = list()
All_Ip_Port = list()
def TxtToList():
with open('scan.txt', 'rt') as f:
for line in f:
line = line.replace('\n', '')
All_Ip.append(line)
return All_Ip.pop()
def Clear():
for ip in All_Ip:
try:
ip = re.search(r'\d+\.\d+\.\d+\.\d+',ip).group(0)
except Exception as e:
print(e)
#print(ip)
if ip not in All_Clear_Ip:
All_Clear_Ip.append(ip)
return All_Clear_Ip.pop()
def GetIpAddPort():
for i in All_Ip:
try:
ip = re.search(r'\d+\.\d+\.\d+\.\d+',i).group(0)
port = re.search(r'\d{1,5}',i).group(0)
except Exception as e:
print(e)
#print(port)
combine = ip + ':' + port
All_Ip_Port.append(combine)
def ToMerge():
for a in All_Clear_Ip:
html = ''''''
html += '<h3>'+ a + 'IP地址开放情况' +'</h3>'
temporary_table = list()
for b in All_Ip_Port:
c = b.split(':')[0]
if a == c:
html += '<a target="_blank" href="http://' + b + '"' + '</a>' + b + '</a><br />'
with open('result_' + str(int(time.time())) + ' .html', 'a') as f:
f.write(html + '\n')
#print(temporary_table)
def main():
TxtToList()
Clear()
GetIpAddPort()
ToMerge()
if __name__ == '__main__':
main()
效果图: