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


Transform ip address to ip range (Start IP - End IP)

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

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

有数百种方法可以在最后一个句号之后修剪掉所有内容。一种方法是在没有最后一件物品的情况下爆炸和内爆…

$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";

你的问题没有多大意义,因为如果你想获得网络中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地址和子网掩码确定网络地址和广播地址?
  • https://networkengineering.stackexchange.com/questions/7106/how-do-you-calculate-the-prefix-network-subnet-and-host-numbers

还有将ip转换为数字和将数字转换为ip的函数:

  • ip2long转换ip字符串为数字
  • long2ip将数字转换为IPv4字符串
编辑:

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

使用composer require rpodwika/network-calculator

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