Как сделать заявление, если не показывать имя хоста - gethostbyaddr
Я пытаюсь сделать простой PHP-скрипт для отображения имени хоста с помощью gethostbyaddr. Давайте представим, что 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
}
}
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 />';
}
}
?>