-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathportscanner.py
More file actions
executable file
·27 lines (27 loc) · 856 Bytes
/
portscanner.py
File metadata and controls
executable file
·27 lines (27 loc) · 856 Bytes
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
#!/usr/bin/env python3
"""PortScanner - simple TCP connect scanner (demo)
Usage: python3 portscanner.py <host> [start_port] [end_port]
"""
import sys, socket, time
def scan(host, start=1, end=1024, timeout=0.2):
open_ports=[]
for p in range(start, end+1):
try:
s=socket.socket()
s.settimeout(timeout)
s.connect((host,p))
s.close()
open_ports.append(p)
except: pass
return open_ports
def main():
if len(sys.argv)<2:
print('Usage: python3 portscanner.py <host> [start] [end]'); return
host=sys.argv[1]
s=int(sys.argv[2]) if len(sys.argv)>2 else 1
e=int(sys.argv[3]) if len(sys.argv)>3 else 512
t0=time.time()
r=scan(host,s,e)
print('Open ports:', r)
print('Elapsed:', round(time.time()-t0,2), 's')
if __name__=='__main__': main()