2013-11-11 2 views
0

Я пытаюсь сделать простой скрипт php, чтобы показать имя хоста, используя gethostbyaddr. Предположим, что ip xxx.xxx.xxx.4 покажет имя хоста, а ip xxx.xxx.xxx.5 не отображает имя хоста. Мой вопрос: как я могу сделать, если не указано имя хоста? Спасибо.Как сделать заявление, если не показать имя хоста - gethostbyaddr

$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 
    } 
} 
+2

Ты вопрос неясен. Что именно ты пытаешься сделать? – Latheesan

+0

'gethostbyaddr()' возвращает исходный IP-адрес, если хост не найден, поэтому вы можете сравнить его с '$ value' –

+0

Привет @LatheesanKanes. На самом деле, я хочу сделать таблицу ip, и она покажет имя хоста. – Syafeuq

ответ

1

Согласно manual:

Возвращает имя хоста в случае успеха, неизмененный 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 />'; 
     } 
    } 
?> 
+0

Привет @ h2ooooooo. Я попробую это и вернусь к вам. – Syafeuq

+0

Спасибо @ h2ooooooo. Это то, чего я хочу. :) – Syafeuq