IPアドレスの後に付いてるスラッシュと数字の意味
さっき192.*.*.*/32みたいな表記を見て意味が分からなかったので調べてみた。
このスラッシュの後の数字は「プレフィックス」というらしい。
192.168.1.0/32って付いてる場合サブネットは
255.255.255.255
となって、適用範囲は
192.168.1.1 ~ 192.168.1.1
になるらしい。結局「/32」って付いてる場合は特定のIPを明示的に示してるものだって。
他にも
192.168.1.0 /24ってなってる場合サブネットは
255.255.255.0
となって、適用範囲は
192.168.1.0 ~ 192.168.1.255
になるらしい。
実際にどう使うのか?
例えば、「192.168.1.30」という端末にIPアドレスでアクセス制限をかけたい場合に
「192.168.1.20 /24」というマスクをかければ
192.168.1.0 ~ 192.168.1.255 までの間は端末にアクセス出来るが
192.168.2.* みたいなIPを持つ端末ではアクセスが出来ないように制限できる。
らしい。
ちなみにこれをチェックする関数がある。
Net_IPv4::ipInNetwork() -- 与えられた IP が与えられたネットワーク内にあるかどうかを決定する
例 アドレスがネットワークに含まれるかどうかチェックする
<?php require 'Net/IPv4.php'; $ip = '10.11.12.13'; $net1 = '10.0.0.1/8'; $net2 = '127.0.0.1/8'; echo Net_IPv4::ipInNetwork($ip, $net1) // bool(true) echo Net_IPv4::ipInNetwork($ip, $net2) // bool(false) ?>