-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathport_checkerV4.py
81 lines (63 loc) · 2.04 KB
/
port_checkerV4.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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import argparse
import threading
import socket
import time
start_time = time.time()
parser= argparse.ArgumentParser(description="Port checker")
parser.add_argument('-u','--url',help="Url Or host",default='127.0.0.1')
parser.add_argument('-p','--ports',help="how many ports to scan default(1000)",default=1000,type=int)
parser.add_argument('-t','--threads',help="Total threads to use default(30)",type=int,default=30)
parser.add_argument('-b','--timeout',help="timeout to inspect a port", default=5,type=int)
args=parser.parse_args()
#host='127.0.0.1'
values=[i for i in range(1,args.ports)]
values=values[::-1]
lock=threading.Lock()
print('---'*10)
print(' '*10)
flag=0
def formater(x):
print(f'\x1b[s Checking number({x}) \x1b[u',end='')
def target_fuction(i):
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.settimeout(args.timeout)
try:
s.connect((args.url,i))
#print('\x1b[#F')
print(f'[+] \x1b[38;5;46m connected {i} \x1b[0m',end='\n')
#print('\x1b[#F')
except ConnectionRefusedError:
return
#print('Closed port')
except socket.timeout:
print(f'[+] \x1b[38;5;208m Filtered connected {i} \x1b[0m',end='\n')
except socket.gaierror:
return
#print(f'[-] \x1b[38;5;196m Not Connected {i} \x1b[0m',end ='\n')
except OSError as errors:
global flag
if flag==0:
print(f'[-] \x1b[5m \x1b[38;5;154m Not connected to internet Or Not reachable\x1b[0m',end ='\n')
flag=1
exit()
def printer():
if len(values)==0:
return
while True:
with lock:
if len(values)==0:
return
x=values.pop()
formater(x)
target_fuction(x)
def main():
global lock
threads_ = [threading.Thread(target=printer) for x in range(args.threads)]
for t in threads_:
t.start()
for t in threads_:
t.join()
main()
print(f"--- {int(time.time() - start_time)} seconds ---------" )
print('---'*10)
exit()