由于工作中需要对多个IP段进行统计,并判断是否部署WEB服务,所以有了写这个脚本的想法。在中间测试脚本的时候,遇到了个坑,我在自己的电脑上运行脚本的时候,没有任何问题。但是当我放到我的服务器上去运行的时候,python在请求了几个站点之后就开始报错了。
ConnectionResetError: [Errno 104] Connection reset by peer
经过度娘,谷歌的一阵搜索,发现了问题,是由于我大量频繁的请求,导致服务器关闭了连接。由于技术有限,在这里我的解决办法就是在对URL进行请求的时候,添加个异常捕获(try except),成功解决了该问题!
以下是我昨天临时写的脚本源码,大致意思就是,获取文件中的IP列表,然后使用nmap对80,8080,443进行探测,并对开放这些端口的IP进行拼接并根据返回code判断是否有WEB服务。最后将结果写入到文件中。
import sys
import os
import nmap
import requests
import logging
import threading
from multiprocessing import Pool as ThreadPool
import time
from openpyxl import load_workbook,Workbook
th = 20
code = [200,403,404]
os.mknod('AAA.txt')
def GetIp(site):
url_list = []