我有大约 1000 个 IP 地址。我使用下面的代码为他们计算 IP 范围:
public function ipRange($mainIp, $mask)
{
$mainIpLong = ip2long($mainIp);
$maskLong = ip2long($mask);
$netid = long2ip($mainIpLong & $maskLong);
$broadcast = long2ip($mainIpLong | ~$maskLong);
//here I insert $netid and $broadcast to a MySQL table
//so I have abount 1000 records
}
它正确计算 IP 范围,例如,如果我这样调用:
ipRange('91.99.98.243', '255.255.255.240');
结果将是:
$netid -> 91.99.98.240
$broadcast -> 91.99.98.255
现在我需要一个搜索功能。它应该找到给定 IP 地址的子范围,所以如果我调用search('91.99.98.249')
,search() 函数应该显示 netid 为 91.99.98.240 和广播字段为 91.99.98.255 的记录。
我怎样才能做到这一点?