当前位置: 首页 > 知识库问答 >
问题:

Python无法使用套接字绑定我的外部/公共IP地址,会出现错误,但当使用本地IP地址时,错误不会出现

万俟英锐
2023-03-14

下面是出现主要错误的代码

s.bind(("192.168.1.4", port))
s.bind(("99.99.99.99", port))

以下是关于我的代码的更多上下文:


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

port = 6767

try:
    s.bind(("192.168.1.4", port))  # will work fine as local ip is used but 
                                   # when used public ip the error is thrown
except socket.error as e:
    print(str(e)+"aa")

s.listen(2)

共有1个答案

白昊乾
2023-03-14

您只能绑定到系统本地的IP地址。您看到的“公共IP”可能不是本地计算机的IP地址,而是为您提供internet连接的路由器的IP地址。

这意味着您需要在此路由器上运行程序才能绑定到此IP地址。由于这通常是不可能的,使某些内部服务从外部访问的常见方法是绑定到本地网络中的地址,然后向路由器添加转发规则,该规则将外部连接转发到服务绑定和侦听的内部IP和端口。

 类似资料:
  • 问题内容: 如果我在中保留注释,它将像正常一样开始(返回预期结果)。 但是,如果我设置了它,那么它会说OK,但是elasticsearch的状态是。 在这种情况下我做错了什么? 系统:Ubuntu 14.04 LTS 更新:通过将其绑定到进行修复。 问题答案: 更新:通过将其绑定到0.0.0.0进行了修复。

  • 我正在尝试将jboss绑定到一个外部ip地址,而不是默认的127.0.0.1,但是我得到了错误并且无法。 我要绑定到的IP地址是有效和可访问的,并且我已经使用ping进行了测试。我试过修改standalone.conf或修改standalone.xml,也试过-b xxx.xxx.236.237逼近,但每次都得到相同的错误。 请帮忙。多谢了。

  • 我在MongoDB中配置了一个三节点副本集;复制是同步的。 我可以单独连接到每台服务器,并使用每台服务器的专用IP地址连接到副本集,如下所示: mongo—主机rs0/10。十、 X.X:27017,10。十、 X.X:27017,10。十、 X.X:27017-u根-p abc123-authenticationDatabase管理员 但是当我尝试使用服务器的公共IP地址连接到副本集时,如下所示

  • 我遇到了这种奇怪的情况,我可以将ServerBootstrap与本地IP地址绑定,但当我尝试使用我的公共IP地址时,它抛出了一个异常:< code >线程" main " org . JBoss . netty . channel . channel异常:无法绑定到:/57.88.173.132:5055 有人可以向我解释出了什么问题吗???顺便说一句,我使用网络3.6.1 我改变了地址,它不是真

  • 问题内容: 我想获取启动程序的计算机的IP地址,然后将其发送到客户端,但是我总是得到0.0.0.1而不是真实的IP地址(例如127.0.0.1)。 我目前可以获取端口,但无法获取IP地址。 我怎么才能得到它? 最好的解决方案是能够使用。这是我目前正在做的事情: 编辑: 我知道我的思维方式走错了路。所以我的问题是:获得自己的IP地址的最佳方法是什么? 问题答案: 当您将套接字设为0.0.0.0时,这

  • 问题内容: 如何仅使用标准库在Python平台中独立查找本地IP地址(即192.168.xx或10.0.xx)? 问题答案: 这将永远无法正常工作(返回127.0.0.1主机为as的机器127.0.0.1),将是gimel显示的一种称呼,而是使用。当然,您的计算机需要一个可解析的主机名。