gethostbyname

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

gethostbyname

Сообщение azatsh » 29.07.2010 15:19:46

мне необходимо проверить наличие интернета.
в винвовс ечть функция gethostbyname. если IP возвращается значит инет есть.
но я пишу под линуксом. там нет этой функции.
подскажите как можно решить пролемму.
fpc 2.5; lazarus 0.9.29; ubuntu 10.4 gnome
azatsh
новенький
 
Сообщения: 33
Зарегистрирован: 20.07.2010 10:14:04

Re: gethostbyname

Сообщение Mr.Smart » 29.07.2010 15:34:25

Функция gethostbyname не гарантирует наличие интернет подключения!
Если у вас машина подключена к ЛВС будет возвращаться IP отличный от 127.0.0.1, а это не гарантирует, что есть подключение к интернет.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: gethostbyname

Сообщение azatsh » 29.07.2010 15:36:45

я это знаю. я возвращаю IP google.com в видовс все работает мне для линускса надо. да и мне не важен IP
azatsh
новенький
 
Сообщения: 33
Зарегистрирован: 20.07.2010 10:14:04

Re: gethostbyname

Сообщение Mr.Smart » 29.07.2010 15:38:44

Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: gethostbyname

Сообщение azatsh » 03.08.2010 12:41:19

метод не подходит так как netdb истользует hosts, а не стучиться в интернет
Код: Выделить всё
  SResolveFile   = '/etc/resolv.conf';
  SServicesFile  = '/etc/services';
  SHostsFile     = '/etc/hosts';
  SNetworksFile  = '/etc/networks';
  SProtocolFile  = '/etc/protocols';   


Добавлено спустя 2 часа 20 минут 31 секунду:
решил проблемму так
Код: Выделить всё
function conn:Boolean;
var
pro:TProcess;
list:TStringList;
begin
  Result:=false;
  pro:=TProcess.Create(nil);
  pro.CommandLine:='ping www.google.com -c 1' ;
  Pro.Options := Pro.Options + [poWaitOnExit, poUsePipes];
  pro.Execute;
  list:=TStringList.Create;
  list.LoadFromStream(pro.Output);
  pro.free;
  if list.Count>0 then  Result:=true;
  list.free;
end;

т.е. вызываю терминальный пинг и считываю что он тан понаписал. если инета нет то в pro.Output хранится NULL
azatsh
новенький
 
Сообщения: 33
Зарегистрирован: 20.07.2010 10:14:04


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 48

Рейтинг@Mail.ru