Python in Cybersecurity - Port Scanner
Description
How to write adavanced port scanner in python
Video
Code
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 socket
import re
from termcolor import colored
import optparse
from threading import *
def portscanner(host, port):
try:
socket.setdefaulttimeout(5)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if sock.connect_ex((host,port)):
print(colored("port %d closed" % port,'red'))
else:
print(colored("port %d open" % port, 'green' ))
except Exception as error:
print(error)
def portScan (host,ports):
for port in ports:
if 0 < int(port) < 65353:
Th =Thread(target=portscanner,args=(host,int(port)))
Th.start()
else:
print('%d is not valid' % port)
def main():
parser = optparse.OptionParser('for scan -t <host ip> -p <host port > ')
parser.add_option('-t',dest='targethost', type= 'string', help='type target host')
parser.add_option('-p',dest='targetport', type= 'string', help='ports , seperated')
(options, args) =parser.parse_args()
target_host = options.targethost
target_port = str(options.targetport).split(',')
if (target_host is None) | (target_port[0] is None):
print(parser.usage)
exit(0)
else:
validIP = re.match(r"\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b", target_host)
if bool(validIP):
portScan(target_host,target_port)
else:
print('check the ip')
if __name__ == '__main__':
main()
# while True:
#
# try:
# sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# host = input("enter the host: ")
# port = int(input("enter the port: "))
#
# validIP = re.match(r"\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b",host)
# validport = True if 0 < port < 65535 else False
#
#
# if bool(validIP) and validport:
# portScan(host,port)
# else:
# print('check port or ip is valid')
#
#
# sock.close()
#
# except Exception as error:
# print(error)
This post is licensed under CC BY 4.0 by the author.