首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将IPV6转换为15个字符长度的整数?

如何将IPV6转换为15个字符长度的整数?
EN

Stack Overflow用户
提问于 2019-07-24 18:04:12
回答 1查看 143关注 0票数 1

我需要将IPV6地址转换为15个字符长度的整数,以便我可以使用IP2LOCATION数据库?

这是我从http://download.ip2location.com/lite/下载的数据库"IP2LOCATION-LITE-DB1.IPV6.CSV“

我尝试使用此函数,但它给我提供了非常长的字符串:

代码语言:javascript
复制
function ipv6_numeric($ip) {
   $binNum = '';
   foreach (unpack('C*', inet_pton($ip)) as $byte) {
      $binNum .= str_pad(decbin($byte), 8, "0", STR_PAD_LEFT);
   }
   return base_convert(ltrim($binNum, '0'), 2, 10);
}

ipv6_numeric('fe80:0:0:0:202:b3ff:fe1e:8329')
return "338288524927261046600406220626806860202"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-24 18:28:30

我发现了这个函数:

代码语言:javascript
复制
function Dot2LongIP($ipv6) {
    return (string) gmp_import(inet_pton($ipv6));
}

网址:https://lite.ip2location.com/faqs

在问题:“如何将IPv6地址转换为IP号?”

但是您的ipv6地址fe80:0:0:0:202:b3ff:fe1e:8329也会返回一个很长的数字:338288524927261089654163772891438416681。请注意,此结果与您已有的结果不同。

至于结果的长度:如果你实际查看CSV文件,就像Nigel Ren在评论中建议的那样,你会发现那里也有很长的数字。

因此,这个长数字是正确的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57180322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档