関数の概要
PHPのlong2ip関数は、整数(32ビット符号なし整数)で表現されたIPアドレスを、通常のIPv4形式のドット付き10進表記(例:192.168.0.1)に変換するための関数です。IPアドレスを数値形式から簡単に復元できるので、ネットワークプログラミングやログ解析などの場面で役立ちます。
パラメータの説明
$ip:整数値(intまたはfloat)として表現されたIPアドレス。32ビットの符号なし整数で、0から4294967295までの値を取ります。
戻り値
指定した整数に対応するIPv4アドレスの文字列を返します。失敗した場合は FALSE を返します。ただし、通常の整数範囲内であれば正しいIPアドレス文字列が返されます。
使用例
基本的な使い方
<?php
$intIp = 3232235521;
$ipAddress = long2ip($intIp);
echo $ipAddress; // 出力: 192.168.0.1
?>
この例では、整数値3232235521をlong2ipで変換し、IPv4形式の”192.168.0.1″を得ています。
複数の整数をIPアドレスに変換
<?php
$intIps = [16777343, 2130706433, 2886729985];
foreach ($intIps as $intIp) {
echo long2ip($intIp) . "<br>";
}
// 出力:
// 127.0.0.255
// 127.0.0.1
// 172.16.254.1
?>
配列に格納した複数の整数を1つずつ変換し、対応するIPアドレスを出力しています。
変換後のIPアドレスを条件分岐で利用
<?php
$intIp = 3232235777; // 192.168.1.1
$ipAddress = long2ip($intIp);
if ($ipAddress === "192.168.1.1") {
echo "ローカルネットワークのデバイスです。";
} else {
echo "外部ネットワークのIPアドレスです。";
}
?>
変換したIPアドレスを比較して特定の条件でメッセージを表示する例です。
関連する関数
ip2long– IPv4アドレスの文字列を整数に変換する関数inet_ntop– IPアドレスのバイナリ形式から標準表記に変換する関数(IPv4・IPv6対応)inet_pton– IPアドレスをバイナリ形式に変換する関数
まとめ
PHPのlong2ipは、整数形式のIPv4アドレスを分かりやすいドット付き10進表記に変換する便利な関数です。特にネットワークプログラムやIPアドレスのログ解析時に活用できます。整数とIPアドレス文字列の相互変換には ip2long とセットで使うと効果的です。実務でもトラブルシューティングやデータ整形の際に役立つため、ぜひ覚えておきましょう。
