【问题标题】:PHP how to check if IP RANGE provided is IPv4 or IPv6PHP如何检查提供的IP RANGE是IPv4还是IPv6
【发布时间】:2017-11-14 10:57:11
【问题描述】:

所以我有以下两个 IP 范围

2a02:c78::/29
2.120.0.0/13

我可以用什么php函数来区分ipv4范围和ipv6范围

需要这样的东西

function ip_range_type($range_ip)
{
//if ip range provided is ipv4 then

//if ip range provided is ipv6 then
}

【问题讨论】:

  • 正则表达式是您要找的。​​span>
  • strpos($ip, ':') !== false 应该做得很好……
  • 根据重复的帖子我喜欢filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
  • @the4kman 您没有阅读我的问题,我正在验证范围是 ipv4 还是 ipv6 RANGE 是关键字而不是地址。

标签: php


【解决方案1】:

此解决方案的功劳归用户@deceze

function ip_range_type($range_ip)
{
    if (strpos($range_ip, ':') !== false) {
        //if ip range provided is ipv6 then
        echo "range provided is ipv6";
    } else {
        //if ip range provided is ipv4 then
        echo "range provided is ipv4";
    }
}
$range_ip = "2a02:c78::/29";
ip_range_type($range_ip);

【讨论】:

    【解决方案2】:

    IP 地址有很多范围,例如所有 IPv4 Ranges 与网络地址和 CIDR 相同,您也可以检查 IPv6 Ranges。您的问题的答案已经在这里check IPv4 or IPv6 Range 以一种有效的方式进行了解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 2014-03-13
      • 2018-12-04
      • 2017-09-04
      • 2016-12-10
      相关资源
      最近更新 更多