-1
を解決することはできません私はこのコードを実行すると、私はこのソケットエラー取得しています:のpython3ポートスキャンがソケットpr0blem
[WinError 10038] An operation was attempted on something that is not a socket
を私はs.close()
を削除しても、それは私に間違った結果が得られます。
スキャンするサーバー上のすべてのポートに接続しようとしているポートスキャナーです。そして、私が接続しているものはリストに保存されています。しかし何らかの理由で私に間違った結果をもたらしています。誰かが私を助けてくれますか?あなたは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)
のためにあなたの内側に不要な
port
ユーザーが定義変数と増分を削除するためにソケットを閉じる必要がありますありがとう問題を解決した – Hagge15あなたのために働いた場合、私の答えを受け入れることを検討:) – danidee