サンプル・プログラムの実行例

サンプル・プログラム
ip2host.php | サンプル・プログラム本体 |
サンプル・プログラムの解説
172: /**
173: * ホスト名どうか検査する
174: * @param string $str チェックするテキスト
175: * @return string ホスト名/FALSE(ホスト名ではない)
176: */
177: function is_host($str) {
178: $pat = "/(https?:\/\/)?([\-\_\.\!~\*'\(\)a-zA-Z0-9\;\?\@\&\=\+\$\,%#]+)/";
179: //URLを表す正規表現
180: if (preg_match($pat, $str, $regs) != 1) return FALSE;
181:
182: return $regs[2];
183: }
プログラムの流れは、「./正規表現でURLをリンクに変換する」および「正規表現でIPアドレスかどうか調べる」とほとんど同じである。

与えられた文字列がIPアドレスか、ドメイン名かについては、正規表現によるパターンマッチングで判断する。
IPアドレスだったら、IP アドレス部分を取り出し、関数 gethostbyaddr によってドメイン名に変換する。
ドメイン名だったら、ドメイン名部分を取り出し、関数 gethostbyname によって IP アドレスに変換する。
いずれにもマッチしない場合は解析不能としてエラーメッセージを表示する。

さらに whois 検索を行いたいのであれば、pear の Net_Whois::query() を利用するといいだろう。

与えられた文字列がIPアドレスか、ドメイン名かについては、正規表現によるパターンマッチングで判断する。
IPアドレスだったら、IP アドレス部分を取り出し、関数 gethostbyaddr によってドメイン名に変換する。
ドメイン名だったら、ドメイン名部分を取り出し、関数 gethostbyname によって IP アドレスに変換する。
いずれにもマッチしない場合は解析不能としてエラーメッセージを表示する。

さらに whois 検索を行いたいのであれば、pear の Net_Whois::query() を利用するといいだろう。
参考サイト
- IPアドレス・ドメイン名変換:E&A工房
- 正規表現でURLをリンクに変換する:ぱふぅ家のホームページ
- 正規表現でIPアドレスかどうか調べる:ぱふぅ家のホームページ
(この項おわり)
(2021年8月28日)PHP8対応,大幅改訂