Когда я запускаю этот код я получаю эту ошибку сокета:Python3 сканер портов не может решить сокет pr0blem
[WinError 10038] An operation was attempted on something that is not a socket
, но даже если я удалить s.close()
это дает мне неправильные результаты.
Это сканер портов, который попытается подключиться ко всем портам на сервере, который я хочу отсканировать. И те, с которыми я получаю соединение, хранятся в списке. Но почему-то это дает мне неправильные результаты. может кто-то, пожалуйста, помогите мне.
import socket
import threading
def scan_for_open_ports():
#Creating variables
OpenPorts = []
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = input('Host to scan: ')
global port
global OpenPorts
port = 1
#Scanning
for i in range(65534):
try:
s.connect((host, port))
s.shutdown(2)
OpenPorts.append(port)
print(str(port) + 'is open.')
s.close()
port += 1
except socket.error as msg:
print(msg)
s.close()
show_user()
def show_user():
#Giving the user results
print('------Open porst-----\n')
print(OpenPorts)
Спасибо что решило проблему. – Hagge15
подумайте о принятии моего ответа, если он сработает для вас :) – danidee