??IP?mask?????????IP?????IP, ??IP, Broadcast?Network
#!/usr/local/bin/php
<?php
$ip_addr = "168.95.1.1";
$subnet_mask = "255.255.255.0";
$ip = ip2long($ip_addr);
$nm = ip2long($subnet_mask);
$nw = ($ip & $nm);
$bc = $nw | (~$nm);
echo "IP Address: " . long2ip($ip) . "n";
echo "Subnet Mask: " . long2ip($nm) . "n";
echo "Network Address: " . long2ip($nw) . "n";
echo "Broadcast Address: " . long2ip($bc) . "n";
echo "Number of Hosts: " . ($bc - $nw - 1) . "n";
echo "Host Range: " . long2ip($nw + 1) . " -> " . long2ip($bc - 1) . "n"; ?>
Produces the output:
IP Address: 172.14.1.57
Subnet Mask: 255.255.255.0
Network Address: 172.14.1.0
Broadcast Address: 172.14.1.255
Number of Hosts: 254
Host Range: 172.14.1.1 -> 172.14.1.254
?>