0

gethostbyaddr を使用してホスト名を表示する単純な php スクリプトを作成しようとしています。IP xxx.xxx.xxx.4 はホスト名を表示し、IP xxx.xxx.xxx.5 はホスト名を表示しないと仮定します。私の質問は、ホスト名ステートメントがない場合、どうすればよいですか? ありがとうございました。

$ips = array("xxx.xxx.xxx.4","xxx.xxx.xxx.5");

foreach ($ips as $value) {
    if ($hostip = @gethostbyaddr( $value )) {
       echo "$hostip<br>";
    }   
    else {
       //show no hostname statement here
    }
}
4

1 に答える 1

1

マニュアルによると:

成功した場合はホスト名を返し、失敗した場合は変更されていない ip_address を返し、形式が正しくない入力の場合は FALSE を返します。

だからあなたはこれを行うことができます:

<?php
    $ips = array("xxx.xxx.xxx.4","xxx.xxx.xxx.5");

    foreach ($ips as $value) {
        $hostname = gethostbyaddr($value);

        if ($hostname === false) { //malformed input
            echo 'IP "' . $value . '" was malformed<br />';
        } else if ($hostname === $value) { //failure
            echo 'Hostname could not be found for "' . $value . '"<br />';
        } else { //success
            echo 'Hostname: ' . $hostname . '<br />';
        }
    }
?>
于 2013-11-11T15:00:29.140 に答える