php gethostbyaddrでIPアドレスからホスト名を取得する

  • 作成日 2021.11.17
  • php
php gethostbyaddrでIPアドレスからホスト名を取得する

phpで、gethostbyaddrを使用して、IPアドレスからホスト名を取得するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

gethostbyaddr使い方

gethostbyaddrを使用すれば、IPアドレスからホスト名を取得することが可能です。

gethostbyaddr("IPアドレス")

以下は、IPアドレスからホスト名を取得するサンプルコードとなります。

<?php

echo gethostbyaddr("8.8.8.8");
// dns.google

不正なIPの場合は、falseとwarningが出力されます。

<?php

var_dump(gethostbyaddr("255.255.255.256"));

webサーバー上以外で「php」コマンドなどで実行した場合は、falseが返ります。

PHP Warning:  gethostbyaddr(): Address is not a valid IPv4 or IPv6 address in /usr/share/nginx/html/sample.php on line 3
PHP Stack trace:
PHP   1. {main}() /usr/share/nginx/html/sample.php:0
PHP   2. gethostbyaddr($ip = '255.255.255.256') /usr/share/nginx/html/sample.php:3
/usr/share/nginx/html/sample.php:3:
bool(false)

逆に、ホスト名からIPアドレスを取得するには「gethostbyname」を使用します。

<?php

echo gethostbyname("dns.google");
// 8.8.8.8