PHP 想將 CIDR 的 IP 展開,或者要抓 CIDR 最小與最大值的區間,要怎麼做呢?
PHP 將 IPv4 CIDR subnet IP 展開
PHP 將 CIDR IP 展開:
- <?php
- function ip_cidr_list($cidr) {
- $ip_count = 1 << (32 - $vlsm);
- $start = ip2long($start_ip);
- for ($i = 0; $i < $ip_count; $i++) {
- $ip = long2ip($start + $i);
- echo $ip . "\n";
- }
- }
- print_r(ip_cidr_list('207.64.1.68/28')); // 207.64.1.68, 207.64.1.69, .. 207.64.1.83
- print_r(ip_cidr_list('172.224.224.88/29')); // 172.224.224.88,172.224.224.89 .. 172.224.224.95
- ?>
PHP 將 CIDR IP 展開取得最小與最大值,抓取範圍區間:
- <?php
- function ip_cidr_range($cidr) {
- $range = [];
- $cidr = explode('/', $cidr);
- return $range;
- }
- print_r(ip_cidr_range('207.64.1.68/28')); // [207.64.1.64, 207.64.1.79]
- print_r(ip_cidr_range('172.224.224.88/29')); // [172.224.224.88, 172.224.224.95]
- ?>