找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 6336|回复: 2

[讨论] python3 socket模块疑似BUG

1

主题

1

帖子

5

积分

贫民

积分
5
useryzl 发表于 2014-3-20 11:00:42 | 显示全部楼层 |阅读模式
import socket
hostname =socket.gethostname()         #这句没问题能获得中文主机名
IP = socket.gethostbyname(hostname)   #这条语句在英文主机名的时候没有问题
                                                               #中文主机名的情况下出错
                                                               #提示socket.gaierror: [Errno 11004] getaddrinfo failed

我的计算机
主机名:我的电脑4
IP地址:10.200.33.44
子网掩码:255.255.0.0
网关:10.200.33.1

D:\Python33>python
Python 3.3.5 (v3.3.5:62cf4e77f785, Mar  9 2014, 10:37:12) [MSC v.1600 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> hostname=socket.gethostname()
>>> socket.gethostbyname(hostname)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
socket.gaierror: [Errno 11004] getaddrinfo failed
>>>
可是奇怪的是下面代码没问题
>>> socket.gethostbyname('中文.cn')
'216.218.207.147'
>>> socket.gethostbyname('中文.net')
'66.240.234.230'





回复

使用道具 举报

0

主题

18

帖子

18

积分

贫民

积分
18
kushao1267 发表于 2016-10-25 18:19:02 | 显示全部楼层

import socket
hostname =socket.gethostname()         #这句没问题能获得中文主机名
IP = socket.gethostbyname(hostname)   #这条语句在英文主机名的时候没有问题

可能是对中文主机名的解析有问题,[Errno 11004]这个错误一般是连接错误,显然对中文的解析出问题了。
回复 支持 反对

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2016-10-25 21:51:50 | 显示全部楼层
在我的机子上, 中英文均可, 没有错误
python3.4.4, win10
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表