gethostbyaddr

関数の概要

PHPの gethostbyaddr 関数は、指定したIPアドレスに対応するホスト名(ドメイン名)を取得するための関数です。ネットワークプログラミングやログ解析など、IPアドレスからホスト名を調べたい場合に便利です。

パラメータの説明

  • ip_address(必須):ホスト名を取得したいIPアドレスの文字列。IPv4およびIPv6の両方をサポートしています。

戻り値

指定したIPアドレスに対応するホスト名を文字列で返します。もしホスト名が取得できなかった場合は、引数として渡したIPアドレス自体を返します。

使用例

基本的な使い方

<?php
$ip = '8.8.8.8';
$hostname = gethostbyaddr($ip);
echo "IPアドレス {$ip} のホスト名は {$hostname} です。";
?>

GoogleのパブリックDNSサーバーのIPアドレス「8.8.8.8」からホスト名を取得して表示しています。

IPv6アドレスからのホスト名取得

<?php
$ipv6 = '2001:4860:4860::8888';
$hostname = gethostbyaddr($ipv6);
echo "IPv6アドレス {$ipv6} のホスト名は {$hostname} です。";
?>

IPv6アドレスに対しても gethostbyaddr は対応しているため、同様にホスト名が取得できます。

ホスト名が見つからない場合の確認

<?php
$ip = '192.0.2.1'; // テスト用のIPアドレス
$hostname = gethostbyaddr($ip);

if ($hostname === $ip) {
    echo "IPアドレス {$ip} のホスト名は見つかりませんでした。";
} else {
    echo "ホスト名は {$hostname} です。";
}
?>

ホスト名が見つからなかった場合は、元のIPアドレスが返るため、このように条件分岐して判定できます。

関連する関数

  • gethostbyname:ホスト名からIPアドレスを取得する関数
  • gethostbynamel:ホスト名から複数のIPアドレスを配列で取得する関数
  • dns_get_record:DNSレコードを取得する関数

まとめ

gethostbyaddr はIPアドレスからホスト名を簡単に取得できる便利な関数です。ネットワーク関連処理やログ分析の際に活用できます。ホスト名が見つからない場合は元のIPアドレスが返るため、結果を必ず確認してエラー処理を行いましょう。また、IPv4だけでなくIPv6にも対応しているため、幅広い環境で実務利用可能です。