有谁知道如何从标准 IP 地址格式字符串(“xxx.xxx.xxx.xxx”)中获取十进制或十六进制的 IP 地址?
我尝试使用 inet_addr() 函数但没有得到正确的结果。
我在“84.52.184.224”上测试过
函数返回的 3770168404 不正确(正确的结果是 1412741344)。
谢谢!
最佳答案
您刚刚得到的字节与您预期的相反 - 它们在 network byte order 中
3770168404 = 0xE0 B8 34 54 network byte order
| |
\ /
\ /
\ /
\ /
/\
/ \
/ \
/ \
| |
1412741344 = 0x54 34 B8 E0 machine order
你可以使用 ntohl()从网络订单转换为机器订单。
关于c++ - 如何将标准 IP 地址格式字符串转换为十六进制和长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/491060/