gpt4 book ai didi

python - 请求的地址在其上下文错误中无效

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:57 28 4
gpt4 key购买 nike

我在学习名为“Black Hat Python”的教程时遇到了“请求的地址在其上下文中无效”错误。我是Python IDE版本:2.7.12这是我的代码:

import socket
import threading

bind_ip = "184.168.237.1"
bind_port = 21

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

server.bind((bind_ip,bind_port))

server.listen(5)

print "[*] Listening on %s:%d" % (bind_ip,bind_port)

def handle_client(client_socket):

request = client_socket.rev(1024)

print "[*] Recieved: %s" % request

client_socket.close()

while True:

client,addr = server.accept()

print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1])

client_handler = threading.Thread(target=handle_client,args=(client,))
client_handler.start()

这是我的错误:

Traceback (most recent call last):
File "C:/Python34/learning hacking.py", line 9, in <module>
server.bind((bind_ip,bind_port))
File "C:\Python27\lib\socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
error: [Errno 10049] The requested address is not valid in its context
>>>

最佳答案

您正在尝试绑定(bind)到一个实际上并未分配给您的网络接口(interface)的 IP 地址:

bind_ip = "184.168.237.1"

参见 Windows Sockets Error Codes documentation :

WSAEADDRNOTAVAIL 10049
Cannot assign requested address.

The requested address is not valid in its context. This normally results from an attempt to bind to an address that is not valid for the local computer.

这可能是您的路由器在使用 NAT(网络地址转换)与您的计算机通信之前正在监听的 IP 地址,但这并不意味着您的计算机根本可以看到该 IP 地址。

要么绑定(bind)到 0.0.0.0,它将使用所有可用的 IP 地址(本地主机和配置的任何公共(public)地址):

bind_ip = "0.0.0.0"

或使用您的计算机配置的任何地址;在控制台中运行 ipconfig/all 以查看您的网络配置。

您可能也不想使用< 1024 的端口;这些是为仅以 root 身份运行的进程保留的。如果你想运行一个非特权进程,你必须选择一个比那个更大的数字(在大多数教程程序中,这正是你想要的):

port = 5021  # arbitrary port number higher than 1023

我相信您所遵循的特定教程使用了 BIND_IP = '0.0.0.0'BIND_PORT = 9090

关于python - 请求的地址在其上下文错误中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38958233/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com