解释下: 1、我本地使用 ipv4,静态 ip 上网 2、ipconfig 获取的 ip 可以肯定是正确的 3、为什么 getgethostbyname() 获取的竟是这个 ip 呢,不解,有大佬解释下嘛?不胜感激~~~
gethostbyname 根据主机名反查机器 IP, 这个是很不靠谱的一种方法,最终的结果和一些 hosts 与环境变量的设置有关,有时候返回的并不能和预期一致. 推荐使用如下代码,如果大量调用建议做缓存:
gethostbyname
def get_host_ip(): 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