【发布时间】:2014-05-30 19:29:27
【问题描述】:
有人知道 MySql INET_NTOA() 是如何将整数值转换回 IP 地址格式的吗?我想知道如何在内部执行计算以将 IP 转换为其原始互联网标准点分十进制格式。
【问题讨论】:
标签: mysql database ip-address
有人知道 MySql INET_NTOA() 是如何将整数值转换回 IP 地址格式的吗?我想知道如何在内部执行计算以将 IP 转换为其原始互联网标准点分十进制格式。
【问题讨论】:
标签: mysql database ip-address
【讨论】:
用二进制写 16777343:
1 0000 0000 0000 0000 0111 1111
从 LSB 开始对位进行分组(以 8 为一组形成一个字节):
[1] [0000 0000] [0000 0000] [0111 1111]
现在以小端形式写成十进制(最低有效字节在前):
127.0.0.1
这可以通过使用来验证:
struct sockaddr_in 羚羊;
inet_aton("127.0.0.1", &antelope.sin_addr); // 将 IP 存储在 antelope
printf("%lld\n",antelope.sin_addr.s_addr); //打印 16777343
printf("%s\n",inet_ntoa(antelope.sin_addr)); //打印 127.0.0.1
希望对你有帮助。
【讨论】: