对于获取 IP 地址,其实
socket.gethostbyname()
很多情况下并不能准确获取到 IP 地址,很多时候会返回一个 127.0.0.1 或者是私有 IP,下面的方法可以更准确的获取 IP 地址(也就是下方的备用方法一):
import socket
def get_host_ip():
查询本机ip地址
:return: ip
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(get_host_ip())