Karp 的技术博客

这两个方法 ip2long()inet_pton() 都是用于处理 IP 地址的函数,但是它们在处理的方式和支持的 IP 地址类型上有所不同。

  1. ip2long($ip)

    • ip2long() 是一个 PHP 内置函数,用于将 IPv4 地址(点分十进制表示)转换为对应的无符号长整型数值。
    • 它接受一个 IPv4 地址作为参数,并返回对应的无符号长整型数值。如果输入的 IP 地址格式不正确,则返回 false
    • 示例:

      $ip = '192.168.0.1';
      $ipNum = ip2long($ip);
      echo $ipNum;  // 输出:3232235521
  2. inet_pton($ip)

    • inet_pton() 是一个 PHP 内置函数,用于将 IPv4 或 IPv6 地址转换为对应的二进制表示。
    • 它接受一个 IP 地址作为参数,并返回一个包含二进制表示的字符串。如果输入的 IP 地址格式不正确,则返回 false
    • inet_pton() 可以处理 IPv4 和 IPv6 地址。
    • 示例:

      $ipv4 = '192.168.0.1';
      $ipv6 = '2001:0db8:85a3:0000:0000:8a2e:0370:7334';
      
      $ipv4Binary = inet_pton($ipv4);
      echo bin2hex($ipv4Binary);  // 输出:c0a80001
      
      $ipv6Binary = inet_pton($ipv6);
      echo bin2hex($ipv6Binary);  // 输出:20010db885a3000000008a2e03707334

需要注意的是,ip2long() 只能处理 IPv4 地址,而 inet_pton() 可以处理 IPv4 和 IPv6 地址。在使用这两个函数时,应根据需要选择适当的函数来处理对应的 IP 地址类型。

php ip

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2023年12月04日 04:33
1

目录

来自 《PHP IP 处理 ip2long() 和 inet_pton()》
774 文章数
0 评论量
9 分类数
779 页面数
已在风雨中度过 9年277天3小时27分