在PHP手册中查看inet_pton
的返回值和inet_ntop
的参数时,在两种情况下都会引用in_addr
。
快速搜索引导我使用此答案MSDN Dev Center:
in_addr结构表示IPv4 Internet地址。
但这仍然无法解释“结构”究竟是什么。使用inet_pton
测试返回值时(使用219.225.174.153
之类的随机IP),我会收到奇怪的字符,例如€·Æô
。
那么PHP和MSDN所指的in_addr
的“结构”究竟是什么?
答案 0 :(得分:5)
inet_pton()
将人类可读的IP地址转换为用于网络操作的4字节二进制字符串,通常涉及原始套接字。这些“奇怪的字符”是数字219,225,174和153的ASCII字符表示,可能会或可能不会反转它们的字节顺序以反映系统的'endian-ness'。
每个IPv4地址本质上都是一个32位无符号整数,我们通过将它分成4个独立的8位数字[0到255]来创建一个易于理解的数字表示,用于所谓的“点阵四边形”符号
如果您只是在寻找更高效的存储 IP地址数据,而不是原始网络,我建议您查看和/或使用ip2long()
和long2ip()
编程。