我有IP地址列表作为字符串,但是该列表中也有一些子网。例如:
... 127.0.0.1
(这是ip)127.0.0.1/24
(这是子网)...
我想检查哪个是IP,哪个是子网。到目前为止,我可以过滤ip,但找不到找到子网的方法:
foreach ($ipstrings as $ip) {
if(filter_var($ip, FILTER_VALIDATE_IP) !== false){
$ips[] = $ip;
}
elseif (is_subnet) {
$subnets[] = $ip;
}
}
如何使is_subnet工作?
<?php
// array of ip and subnets
$ipandmask = array('127.0.0.1','127.0.0.0','127.0.0.2','127.0.0.3/24','127.0.0.4/16');
foreach ($ipandmask as $ipmask) {
if(preg_match('~^(?:[0-9]{1,3}\.){3}[0-9]{1,3}/[0-9][0-9]~',$ipmask,$subnet)){
echo "</br>";
echo "Subnet =>";
print_r ($subnet);
}
if(preg_match('~^(?:[0-9]{1,3}\.){3}[0-9]{1,3}~',$ipmask,$ip)){
echo "</br>";
echo "Ip =>";
print_r ($ip);
}
}
?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句