Я хочу написать сценарий для сканирования su bnet, взять список IP-адресов и открыть многопоточные сеансы для одновременного сканирования ВСЕХ этих IP-адресов на наличие открытых портов:
import socket
import subprocess
import sys
import threading
from netaddr import IPNetwork
from datetime import datetime
List_IP = ['33.45.48.0','33.45.48.1' ]
def subnet_port_scan(subnet):
remoteServerIP = socket.gethostbyname(subnet)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((subnet, 22))
if result == 0:
print ("Port 22 is Open", subnet)
sock.close()
else:
print ("Port 22 is Closed", subnet)
sock.close()
for function in List_IP:
my_thread = threading.Thread(target=subnet_port_scan,args=List_IP)
my_thread.start()
print("Session")
my_thread.join()
Прямо сейчас, если я используйте более 1 аргумента в List_IP, он показывает мне ошибку:
TypeError: subnet_port_scan() takes 1 positional argument but 2 were given
Мне нужно иметь возможность использовать 10-100 IP-адресов и открывать сеансы со всеми, если они одновременно, но я не понимаю, как сделать это. Пожалуйста, посмотрите и дайте мне знать, что мне не хватает.
Спасибо