Skip to content

Commit 3b635d0

Browse files
authored
Update PortScan.py
1 parent 5d82079 commit 3b635d0

File tree

1 file changed

+59
-34
lines changed

1 file changed

+59
-34
lines changed

PortScan.py

Lines changed: 59 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
import socket
55
import time
66
import sys
7+
import argparse
78

9+
green = "\033[32m"
10+
bold = "\033[1m"
811
blue = "\033[94m"
912
red = "\033[91m"
1013
end = "\033[0m"
@@ -42,45 +45,67 @@ def scan(ip,port,l):
4245
print(str(port) + "/TCP" + space + "Unknown")
4346

4447
except KeyboardInterrupt:
45-
print("[-] Exiting!")
48+
print(red+"[-] Exiting!"+end)
4649
exit(1)
4750

4851
return True
4952

50-
parser = ("""
51-
#Usage:
52-
53-
python scan.py <Target Ip/Host> <Threads, (default: 10)>
54-
""")
55-
56-
try:
57-
target = sys.argv[1]
58-
except:
59-
print(parser)
60-
exit(1)
61-
62-
try:
63-
thread = sys.argv[2]
64-
except:
65-
thread = 10
66-
67-
print(red+"[+] Target: "+end+target)
68-
print(red+"[+] Threads: "+end+str(thread))
69-
print(red+"[+] Start The Scan\n"+end)
70-
print("PORT SERVICE")
71-
print("---- -------")
72-
ports = range(65535)
73-
try:
53+
54+
55+
56+
def main():
57+
parser = argparse.ArgumentParser()
58+
parser.add_argument("-t", "--target", help="Target IP/Host", type=str)
59+
parser.add_argument("-d", "--thread", help="threads number (Default 5)", type=int)
60+
parser.add_argument("-p", "--port", help="Ports range (Example: -p 20-1024)", type=str)
61+
args = parser.parse_args()
62+
63+
target = str(args.target)
64+
thread = args.thread
65+
ports = str(args.port)
66+
67+
if target == "None":
68+
parser.print_help()
69+
exit(1)
70+
if thread == None:
71+
thread = 5
72+
73+
if ports == "None":
74+
ports = range(65535)
75+
p = "1-65535"
76+
else:
77+
try:
78+
p = ports
79+
ports = ports.split("-")
80+
ports = range(int(ports[0]), int(ports[1]))
81+
except IndexError:
82+
print("-p/--port, should be a range of ports, Example: -p 20-1024")
83+
exit(1)
84+
85+
print(green+"[+] Target: "+end+target)
86+
print(green+"[+] Threads: "+end+str(thread))
87+
print(green+"[+] Ports: "+end+p)
88+
print(bold+"\n[+] Start The Scan\n"+end)
89+
print("PORT SERVICE")
90+
print("---- -------")
91+
7492
with executor(max_workers=int(thread)) as exe:
75-
[exe.submit(scan, target, port, len(str(port))) for port in ports]
76-
except KeyboardInterrupt:
77-
print("[-] Exiting!")
78-
exit(1)
93+
try:
94+
[exe.submit(scan, target, port, len(str(port))) for port in ports]
95+
except KeyboardInterrupt:
96+
print(red+"[-] Exiting!"+end)
97+
exit(1)
98+
7999

80100

81-
took = time.time() - start
82-
took = took / 60
83-
took = round(took, 2)
101+
took = time.time() - start
102+
t = str(took).split('.')[0]
103+
m = int(t) / 60
104+
s = int(t) % 60
105+
106+
print(" \r")
107+
print(blue+"[+] Took: "+end+str(m)+":"+str(s))
108+
84109

85-
print(" \r")
86-
print(blue+"[+] Took: "+end+str(took)+" ")
110+
if __name__ == '__main__':
111+
main()

0 commit comments

Comments
 (0)