Fatal error при выполнении gethostbyname

vladlen

Новичок
Fatal error при выполнении gethostbyname

Есть строчка

$ip = gethostbyname($row['comp_name']);

При ошибке, по идеи, должена возвращать имя хоста. Но получается , что часто скрипт спотыкается на этой строчке с ошибкой

Maximum execution time of 30 seconds exceeded in

Как это решить?

-~{}~ 16.03.04 15:12:

Хотя наверное дело и не в gethostbyname, а в настройках php?
 

tony2001

TeaM PHPClub
скорее в настройках ДНСа.
у тебя ДНС(связь с ним) падает, а скрипт ждет от него ответа.
 

vladlen

Новичок
Оказалось проще. Изменение строчки в php.ini помогло.

max_execution_time = 120 ; Maximum execution time of each script, in seconds

tony2001
Ещё такой вопрос
Надо узнать о наличие компа в сети, в этом случае результат gethostbyname сопоставим с пингованием, т.е. если возвращает имя хоста, значит комп однозначно выключен? Судя по результатам, вроде да. Но хотелось бы услышать мнения других по этой задаче.
 

ys

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

gethostbyname работает не с машинами, ему вообще начихать на машины.

Есть IP address и доменное имя.
Есть DNS, с него (вкратце) можно получить доменное имя по ip address или наоборот. Все.
 

vladlen

Новичок
ys
В том то и вопрос. При выполнении gethostbyname, хост пингуется или IP c DNS берётся? При эксперименте на одном компе при выключенном состоянии возвращается имя, при включенном IP. Кто имеет информацию по этому поводу?
 

tony2001

TeaM PHPClub
>При выполнении gethostbyname, хост пингуется
нет.

>или IP c DNS берётся?
именно так.
 

vladlen

Новичок
tony2001
Т.е. если комп отключен, должен всёравно IP возвратиться?
 

tony2001

TeaM PHPClub
vladlen
есть сервер ДНС.
на нем хранится соответствие IP<->hostname.
ему начхать на компьютеры и есть ли они вообще в природе, он отдает то, что знает.
 

vladlen

Новичок
Да. Всё именно так. Убедился.
tony2001
А как в PHP сделать ping хосту?
 

ys

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

при выключенном состоянии возвращается имя, при включенном IP.
Некоторые винды могут регистрировать свое имя на DNS сервере автоматически, если это у них включено и DNS настроен правильно и поддерживает update.
 
Сверху