-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathportscan.py
78 lines (64 loc) · 2.24 KB
/
portscan.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
#By Luiz Viana github.com/luizviana
import sys
import socket
def scan(ip, ports):
try:
for port in ports:
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.settimeout(0.05)
code = client.connect_ex((ip, port))
if code == 0:
print("[+] {} open".format(port))
except:
print("Error, something is wrong")
finally:
print("\ndone!!!")
def fastscan(ip):
print("Fast Scan in progress")
ports = [21,22,23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080]
return scan(ip, ports)
def fullscan(ip):
print("Full Scan in progress")
ports = range(1,65536)
return scan(ip, ports)
def customscan(ip, arg_port_range):
try:
ports = []
if "-" in arg_port_range:
arg_port_range = arg_port_range.split("-")
arg_port_range[0] = int(arg_port_range[0])
arg_port_range[1] = int(arg_port_range[1])
arg_port_range.sort()
start = int(arg_port_range[0])
end = int(arg_port_range[1])
print("range: {}-{}".format(arg_port_range[0], arg_port_range[1]))
for port in range(start, end+1):
ports.append(port)
print("Custom Scan in progress.")
return scan(ip, ports)
else:
ports.append(int(arg_port_range))
return scan(ip, ports)
except:
print("Bad arguments")
def ler_argumentos():
if len(sys.argv) == 1 or len(sys.argv) > 3:
print("## portscan python3 ##")
print("Usage: python portscan.py <IP> <mode>\n")
print("Fast mode usage: python portscan.py <ip> fast")
print("Full mode usage: python portscan.py <ip> full")
print("Custom mode usage: python portscan.py <ip> 80-1000")
else:
ip = sys.argv[1]
mode = sys.argv[2]
return ip, mode
if __name__ == "__main__":
args = ler_argumentos()
if args:
ip, mode = args
if mode == 'fast':
fastscan(ip)
elif mode == 'full':
fullscan(ip)
else:
customscan(ip, mode)