如何在套接字python中使用公共ip4

问题描述

我的代码

import socket

server = socket.socket(socket.AF_INET,socket.soCK_STREAM)
server.setsockopt(socket.soL_SOCKET,socket.so_REUSEADDR,1)

server.bind(("47.29.209.94",4567))    #  my public ip
server.listen(5)
server.accept()
print("connected")

我收到“ OSError:[Errno 49]无法分配请求的地址”,但是在ipv6的情况下,它可以正常工作。只有ipv4会出现此错误。如何解决这个错误,我想使用公共IPv4地址

解决方法

您不必将其分配给您的公共IP地址,只需使用

server.bind(("0.0.0.0",4567))

它将监听所有接口,如果正确使用端口转发,则可以接受来自互联网的公共连接