【问题标题】:Problem with a Syntax in Python on a port scanner端口扫描器上的 Python 语法问题
【发布时间】:2020-07-27 12:55:04
【问题描述】:

我正在尝试编码的端口扫描器有问题,它给了我一个语法错误,让我给你看一下代码:

#!/usr/bin/python3

import socket
from termcolor import colored

sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket.setdefaulttimeout(1)

host=input("[*] Inserisci l'indirizzo:")

def portscanner(port):
        if socket.connect_ex((host, port)):
                print (colored("[!!]La porta %d è aperta")% (port), 'red')
        else:
                print (colored("[+]La porta %d è chiusa")% (port), 'green')
for port in range(1,1000):
                portscanner(port)

错误:

Traceback (most recent call last):
  File "portscanner2.py", line 17, in <module>
    portscanner(port)
  File "portscanner2.py", line 12, in portscanner
    if socket.connect_ex((host, port)):
AttributeError: module 'socket' has no attribute 'connect_ex'

【问题讨论】:

    标签: python sockets port scanning


    【解决方案1】:

    你已经用它初始化了

    sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    

    您只需将socket 换成sock,这应该可以解决问题!

    if sock.connect_ex((host, port)):
    

    【讨论】:

      【解决方案2】:

      不,这不是语法错误,这是属性错误。这些是不同的野兽。

      There is no connect_ex function in the socket module;那里有is one on socket objects

      也就是说,您可能想将其更改为 sock.connect_ex()(尽管您还应该记住在成功时关闭套接字),或者您可以不初始化一次 sock使用socket.create_connection() 尝试连接 TCP 套接字。

      【讨论】:

        猜你喜欢
        • 2017-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-01
        • 2018-06-07
        相关资源
        最近更新 更多