将IP地址转换为ip范围(起始IP - 结束IP)

时间:2016-06-24 13:59:10

标签: php

我正在寻找一个给我这个结果的函数:

127.0.0.0-127.0.0.255

只有这个ip:

127.0.0.1 or 127.0.0.50 ...

功能如下:

function transform_ip($ip) {
 // Method to transform ip the ip-range
 // Specify Start IP and End IP
 return $result;
}
echo transform_ip("127.0.0.66"); // result: 127.0.0.0-127.0.0.255

2 个答案:

答案 0 :(得分:2)

在最后一段时间之后,有数百种方法可以修剪掉一切。一种方法是在没有最后一项的情况下爆炸和内爆......

$a = explode('.',$ip); // $a is each number without the periods
pop($a); // Pop off the last number
$ip = implode('.',$a); // Recombine with periods

现在,您只需返回字符串:

$result = "$ip.0-$ip.255";

答案 1 :(得分:0)

你的问题没有多大意义,因为如果你想获得网络中真实的IP范围,你需要提供第二个参数,即IP掩码。

所以当你拥有C类的IP时,它有掩码255.255.255.0和ip 192.168.0.1

当您拥有IP和掩码时,您可以计算广播地址和网络地址。在这个特殊情况下,它将是:

网络192.168.0.0是网络地址,192.168.0.255是广播地址,地址池是192.168.0.1 - 192.168.0.254

例如,在以下链接中,您可以找到功能如何操作

还有一些函数可以将ip转换为数字和数字转换为ip:

  • ip2long将ip string转换为数字
  • long2ip将数字转换为IPv4字符串

编辑:

我已经使用数学和位操作创建了用于计算的库

使用composer require rpodwika/network-calculator

https://github.com/rpodwika/network-calculator