首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getaddrinfo“10.10.10.10”

getaddrinfo“10.10.10.10”
EN

Stack Overflow用户
提问于 2011-10-12 15:49:49
回答 1查看 235关注 0票数 2

我刚刚注意到,如果我将字符串“10.10.10.10”提供给getaddrinfo,我会得到地址0.0.0.10。结果在OS (Lion)和Linux (CentOS 5.6)上是相同的。您可以使用以下命令轻松地进行验证:

代码语言:javascript
复制
$ curl 'http://10 . 10 . 10 . 10/' 
curl: (7) Failed to connect to 0.0.0.10: No route to host

有没有特定的原因导致这种行为,或者我应该认为这是一个bug?我本以为它不会返回任何地址。

编辑:“10asdf”的结果是一样的,我猜是空格造成的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-13 06:52:28

POSIX允许使用由单个数字组成的字符串(十进制、十六进制加上前导0x0X,或者八进制加上前导0)来指定IPv4地址:请参阅inet_addr()的定义(参考AF_INET地址族的getaddrinfo()定义)。

据我所知,它并没有说明输入字符串是如何终止的,因此它停在空格的事实可能只是一个实现细节;但是,如果由getaddrinfo()inet_addr()解析,"10“肯定是IPv4地址的允许表示。(有趣的是,带有AF_INETinet_pton()不允许使用此表单-它只接受标准的四组件表单。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7736832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档