-
Notifications
You must be signed in to change notification settings - Fork 0
/
scanner.py
58 lines (58 loc) · 2.34 KB
/
scanner.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import json
from celery import Celery
import masscan
import subprocess
from ipranges import range_8_16
from colorama import Fore, init
from task import mc_and_check_task
import time
#-------------------------------------------------------------------------------------
init()
red = Fore.RED
white = Fore.WHITE
#-------------------------------------------------------------------------------------
subprocess.Popen(['celery', '-A', 'task', 'worker', '--loglevel=WARNING', "--uid=pi"])
time.sleep(2)
CIDR = 16
exclude = list()
with open("exclude.txt", "r") as exclude_1:
for i in exclude_1:
exclude.append(i.rstrip('\n'))
#-------------------------------------------------------------------------------------
while CIDR >= 8:
with open("config.txt","r") as config:
lines = config.readlines()
l1 = lines[0].strip()
l2 = int(lines[1].strip())
#-------------------------------------------------------------------------------------
CIDR = l1.split("/")
IP_ranges = range_8_16(int(CIDR[1]))
IP_ranges = [x for x in IP_ranges if x not in exclude]
index = IP_ranges.index(l1)
IP_ranges = IP_ranges[index+1:]
#-------------------------------------------------------------------------------------
for ip_range in IP_ranges:
print(ip_range)
try:
mas = masscan.PortScanner()
mas.scan(ip_range, ports="25565", arguments=f"--max-rate {l2} --wait 3")
x = json.loads(mas.scan_result)
len_result = len(x["scan"])
#-------------------------------------------------------------------------------------
if len_result > 0:
print(f"Results: {red}{len_result}{white} ")
for ip in x["scan"]:
adresse = ip + ":" + "25565"
mc_and_check_task.delay(adresse)
else:
print(f"Results: {white}{len_result}")
#-------------------------------------------------------------------------------------
except masscan.NetworkConnectionError:
print(f"{ip_range}masscan connection error")
print("done scanning")
lines[0] = f"{ip_range}\n"
#-------------------------------------------------------------------------------------
with open("config.txt", "w") as f:
f.writelines(lines)
print(f"CIDR range {red}{CIDR}{white}scanned")
CIDR -= 1