当前位置:  开发笔记 > 编程语言 > 正文

如何将标准IP地址格式字符串转换为十六进制和长?

如何解决《如何将标准IP地址格式字符串转换为十六进制和长?》经验,为你挑选了2个好方法。

有谁知道如何从标准IP地址格式字符串("xxx.xxx.xxx.xxx")获取十进制或十六进制的IP地址?

我试过使用inet_addr()函数,但没有得到正确的结果.

我在"84.52.184.224"测试了它

函数返回3770168404,这是不正确的(正确的结果是1412741344).

谢谢!



1> Paul Dixon..:

您刚刚从预期中反转了字节 - 它们处于网络字节顺序

3770168404 = 0xE0 B8 34 54     network byte order
               |         |
                \       /
                 \     /
                  \   /
                   \ /
                   /\
                  /  \   
                 /    \
                /      \
               |        |
1412741344 = 0x54 34 B8 E0     machine order

您可以使用ntohl()从网络订单转换为机器订单.



2> Jackson..:

htonl,htons,ntohl,ntohs函数可用于在网络和本地字节顺序之间进行转换.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有