-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathportscanner.py
53 lines (47 loc) · 1.85 KB
/
portscanner.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
import socket
class PortScanner:
def __init__(self):
pass
def is_port_open(self, ip, port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((ip, port))
sock.close()
return result == 0
except Exception as e:
print(f"An error occurred: {e}")
return False
def scan_ports(self, ip, port_range):
try:
print("Scanning ports...")
for port in port_range:
if self.is_port_open(ip, port):
print(f"{ip} {port} working")
else:
print(f"{ip} {port} not working")
except Exception as e:
print(f"An error occurred: {e}")
def scan_nearby_ips(self, ip, port_range):
open_ports = {}
try:
for i in range(1, 255):
target_ip = f"{ip[:-1]}{i}"
open_ports[target_ip] = self.scan_ports(target_ip, port_range)
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
scanner = PortScanner()
while True:
print("1. IP port scanning")
print("2. Scan nearby IPs and ports")
choice = input("Enter your choice: ")
if choice == '1':
target_ip = input("Enter the target IP address: ")
port_range = [int(port) for port in input("Enter the port range (e.g., 80,443): ").split(",")]
scanner.scan_ports(target_ip, port_range)
elif choice == '2':
target_ip = input("Enter the target IP address (e.g., 192.168.1.): ")
port_range = [int(port) for port in input("Enter the port range (e.g., 80,443): ").split(",")]
scanner.scan_nearby_ips(target_ip, port_range)
else:
print("Invalid choice. Please try again.")