python获取本机ip地址
前言
在项目中使用 Python UDP,绑定时需要用到 IP 何端口,开始使用 socket.gethostbyname()时,当计算机名为中文时会提示,结果发现就是转码问题
socket.gaierror:[Errno11004]getaddrinfo failed
解决如下
方式一:转码后比较推荐
import
socket
#获取本机电脑名
myname
=
socket.getfqdn(socket.gethostname())
#获取本机 ip,记住要转码中文问题
myaddr
=
socket.gethostbyname(myname.decode("utf-8"))
方式二:(注意 dns 设置)
import socket
def getIp():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
if __name__ == '__main__':
print(getIp())