IP Survival Scan Script Implemented by python

  • 2021-08-17 00:33:28
  • OfStack

Download address

ActiveOrNot

Used to process the result deduplication + host survival scan of subdomain scanning tools such as oneforall

Parameter


-f --file   Designated store ip Or subdomain file, default  ip.txt
-t --thread   Set the number of threads, default  50

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

Specific code 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  Survival " % url)
 except:
  print("%s  Not surviving " % 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()+'\n')
 end_time = time()
 run_time = end_time - begin_time
 print(" Total time spent  %s  Seconds "% run_time)


if __name__ == '__main__':
 parser = argparse.ArgumentParser(description='url active scan')
 parser.add_argument("-f", "--file", help=" Specify a file ", default='ip.txt')
 parser.add_argument("-t", "--thread", help=" Set threads ", default=50)
 args = parser.parse_args()
 file = args.file
 th = args.thread
 main(file, th)

The above is python implementation of IP survival scan script details, more about python ip survival scan information please pay attention to other related articles on this site!


Related articles: