開始 IPv4 IP アドレス5.39.28.128
(または::ffff:5.39.28.128
) と IPv6 ネットワーク マスク長122
があります。範囲内の最後の IP を計算するにはどうすればよいですか?
開始 IP をバイナリに変換する必要があると思います。これは以下のように行っています。そこからどこに行って終了 IP を取得すればよいかわかりません。
$ipNumber = ip2long('5.39.28.128');
$ipBinary = decbin($ipNumber);
echo $ipBinary; // 101001001110001110010000000
その理由は、MaxMind GeoIP データベースを CSV 形式で MySQL データベースにインポートしているためです (したがって、必要に応じて MySQL 関数を使用できます)。MaxMind は終了 IP を提供しなくなり、代わりに開始 IP と IPv6 ネットワーク マスク長を提供するようになりました。