【问题标题】:Python OS Error: A socket operation was attempted to an unreachable networkPython OS 错误:尝试对无法访问的网络进行套接字操作
【发布时间】:2025-11-25 04:45:02
【问题描述】:

我制作了一个非常简单的 python 脚本,它应该使用设备的公共 ip 进行连接。但是在运行时出现此错误:OSError: [WinError 10051] A socket operation was attempted to an unreachable network。我知道这意味着我的计算机无法找到路由到该 ip 的方法,但是我不知道如何修复它。

代码:

import socket

ip = "some ip"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("127.0.0.1", 5000))
s.connect((ip, 5000))
s.close()

感谢任何帮助。

【问题讨论】:

  • 该 IP 是什么,您的计算机是否隐藏在代理或防火墙后面?
  • @SergeBallesta 哎呀我忘了删除它,正常的 Windows 防火墙处于活动状态,但我已经用套接字做了其他事情,并设法使用相同的代码连接到网站(使用 url 不是ip)。防火墙还会是个问题吗?
  • 您同时进行绑定和连接?
  • @KlausD。是的,我删除了它,现在遇到了不同的情况(我只是添加它,因为我在别人的回答中看到了它)。我用新问题编辑了问题
  • @KlausD。我的错,删除绑定后它起作用了。感谢您的帮助。

标签: python sockets networking ip-address


【解决方案1】:

非常简单的修复,我只需要删除绑定并将连接端口更改为 80。 工作代码:

import socket

ip = "some ip"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("Finding connection to target")
s.connect((ip, 80))
print("Connected to " + ip)
s.close()```

【讨论】:

    最近更新 更多