python 구현된 IP 생존 스캐닝 스크립트

다운로드 주소


ActiveOrNot
oneforall 등 하위 도메인 이름 스캐닝 도구를 처리한 결과 중복 제거 + 호스트 생존 스캐닝

매개 변수


-f --file   ip ,  ip.txt
-t --thread   ,  50

python3 ActiveOrNot.py -f ip.txt -t 12

구체적인 코드 ActiveOrNot.py


from threading import Thread
from queue import Queue
import requests
from time import time
import argparse

headers = {
 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
}


def ping(url, new_ip):
 url = url.strip()
 if (not url.startswith('http://')) and (not url.startswith('https://')):
  url = 'http://' + url
 try:
  req = requests.get(url, headers=headers, timeout=2)
  new_ip.put(url + ' -- ' + str(req.status_code))
  print("%s  " % url)
 except:
  print("%s  " % url)


def new_list(file):
 with open(file, 'r') as f:
  new_ip = []
  ip_list = f.readlines()
  for ip in ip_list:
   ip = ip.strip().replace('http://', '').replace('https://', '')
   if ip:
    if not (ip in new_ip):
     new_ip.append(ip)
  return new_ip


def main(file, th):
 begin_time = time()
 new_ip = Queue()
 ip_list = new_list(file)
 j = 0
 length = len(ip_list)
 while j < length:
  threads = []
  for i in range(th):
   t = Thread(target=ping, args=(ip_list[j], new_ip))
   t.start()
   threads.append(t)
   j += 1
   if j == length:
    break
  for thread in threads:
   thread.join()
 with open('NewIP.txt', 'a+') as nf:
  while not new_ip.empty():
   nf.write(new_ip.get()+'
') end_time = time() run_time = end_time - begin_time print(" %s "% run_time) if __name__ == '__main__': parser = argparse.ArgumentParser(description='url active scan') parser.add_argument("-f", "--file", help=" ", default='ip.txt') parser.add_argument("-t", "--thread", help=" ", default=50) args = parser.parse_args() file = args.file th = args.thread main(file, th)
이상은python이 실현한 IP 생존 스캐닝 스크립트의 상세한 내용입니다.python IP 생존 스캐닝에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!

좋은 웹페이지 즐겨찾기