我正在寻找一个函数,给我这个结果:
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