имя хоста по ип

partynick

Новичок
имя хоста по ип

Прошу помощи.
Есть сеть из кучи элементов. От всех приходят сообщения, в которых содержится ип отправителя. Есть локальный сервер DNS. Можно ли средствами php отправлять запросы на этот сервер, чтобы определять имя по ип.
Заранее спасибо)
 

partynick

Новичок
а как указывать адрес импользуемого ДНС сервера?
а как использовать nslookup
 

ys

отодвинутый новичок
>а как указывать адрес импользуемого ДНС сервера?
Никак, дописать нужные в /etc/resolv.conf или в настройки сети, если винда.

>а как использовать nslookup
man nslookup :)
 

partynick

Новичок
спасибо.
ну а чем лучше пользоваться
gethostbyaddr() или вот нашел пример

// For Win32...

function nslookup ($ip) {
$host = split('Name:',`nslookup $ip`);
return ( trim (isset($host[1]) ? str_replace ("\n".'Address: '.$ip, '', $host[1]) : $ip));
}
?>
 

partynick

Новичок
еще вопросик
при неизвестном адресе очень длинная задержка,
как поставить поменьше???
то есть как задать таймаут для
gethostbyaddr()?
 

ys

отодвинутый новичок
partynick

Там в примерах ниже все есть.
Например, пример с gethostbyaddr_timeout()
 

partynick

Новичок
да вот тот пример не очень ясен к сожалению)
может есть еще варианты?
 

ys

отодвинутый новичок
>может есть еще варианты?

Сеть состоит из подсетей вида 10.1.1.0/24 ., 10.1.2.0/24 etc ?
Или это адреса из "большого" Интернета?

Для интранетовских адресов у меня используется до безабразия тупая схема с отдельно стоящим DNS сервером, который берет обратные зоны (slave) с нескольких локальных мастеров, где регаются клиентские win машинки (DHCP,DDNS).

gethostbyaddr() использует только этот отдельно стоящий DNS сервер и работает довольно шустро, т.к. этот DNS сервер умеет кешировать записи, а на не существующие - выплевывает SERVFAIL.
 
Сверху