什么是in_addr?

时间:2013-10-07 19:11:02

标签: php

在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的“结构”究竟是什么?

1 个答案:

答案 0 :(得分:5)

inet_pton()将人类可读的IP地址转换为用于网络操作的4字节二进制字符串,通常涉及原始套接字。这些“奇怪的字符”是数字219,225,174和153的ASCII字符表示,可能会或可能不会反转它们的字节顺序以反映系统的'endian-ness'

每个IPv4地址本质上都是一个32位无符号整数,我们通过将它分成4个独立的8位数字[0到255]来创建一个易于理解的数字表示,用于所谓的“点阵四边形”符号

dotted quad example

如果您只是在寻找更高效的存储 IP地址数据,而不是原始网络,我建议您查看和/或使用ip2long()long2ip()编程。