TypeError: str, bytes or bytearray expected, not int when trying to make a Port Scanner

TypeError: str, bytes or bytearray expected, not int when trying to make a Port Scanner

我知道有与我的问题类似的问题,但仍然找不到适合我的具体情况的解决方案。

我正在尝试在 python:

中编写端口扫描程序
import socket


def portscan():
    sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    ip = input("Enter your the ip of the target: ")
    try:
        for port in range(1000):
            if sock.connect_ex((port, ip)):
                print(f"Port {port} is open")
            else:
                print(f"Port {port} is closed")
    except SystemError or SystemExit:
        print("System Exiting...")

我收到此错误:类型错误:应为 str、bytes 或 bytearray,而不是 int

我尝试将命令更改为:

if sock.connect_ex((port, str(ip)))

Ip 现在是参数中预期的字符串,但仍然没有成功,还看到了一些 youtube 视频,他们的代码可以工作,而我的不是 o-o

非常感谢你的帮助:) 在此先感谢!

颠倒你的论点顺序。

sock.connect_ex((ip, port))