Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не получается сделать пинг 
:(
    Опции темы
MaXL
Дата 12.5.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 24.10.2005
Где: Владивосток

Репутация: нет
Всего: 2



Привет всем.
Я использовал пример, который был  в Delphiworld, ноу меня всё равно не получается, вообщем нужно сделать пинг и вывести результаты, я сейчас просто пробовал вывести хоть какой-нибудь результата, но ничо не получается, во привожу процедуру, которая пингует:
Код

procedure do_ping(ResultEditCh:TCompS;hostt:string);stdcall;
var
 WSAData:TWSAData;
 Retorno:integer;
 dwRetorno :DWORD;
 x :integer;
 icmp :icmpecho;
 hndFile :integer;
 Host :PHostEnt;
 Addr :in_addr;
 Endereco :^DWORD;
 Destino :in_addr;

 IP : ipinfo;

 HNDicmp:HWND;

 IcmpCreateFile : TIcmpCreateFile;
 IcmpCloseHandle : TIcmpCloseHandle;
 IcmpSendEcho : TIcmpSendEcho;
begin
 if Length(hostt)<=0 then
  begin
   ResultEditCh(6,0,'');
   ResultEditCh(1,0,'Îøèáêà. Âû íå õîñò äëÿ ïèíãà.');
  end;
 HNDicmp:=LoadLibrary('icmp.dll');
 if HNDicmp=0 then
  begin
   ResultEditCh(6,0,'');
   ResultEditCh(1,0,'Íå óäàëîñü çàãððóçèòü icmp.dll.');
   exit;
  end;
 //ïîëó÷àåì àäðåñà ôóíêöèé â áèáëèîòåêå icmp.dll
 @IcmpCreateFile:=GetProcAddress(HNDicmp,'IcmpCreateFile');
 @IcmpCloseHandle:=GetProcAddress(HNDicmp,'IcmpCloseHandle');
 @IcmpSendEcho:=GetProcAddress(HNDicmp,'IcmpSendEcho');
 if (@IcmpCreateFile=nil) or (@IcmpClosehandle=nil) or
    (@IcmpSendEcho=nil) then
     begin
      ResultEditCh(6,0,'');
      ResultEditCh(1,0,'Ïðîáëåìû ñ áèáëèîòåêîé icmp.dll. Îáðàòèòåñü ê ðàçðîáîò÷èêàì!');
      FreeLibrary(HNDicmp);
      exit;
     end;

 Retorno:=WSAStartup($0101,WSAData);
 if (Retorno<>0) then
  begin
   ResultEditCh(6,0,'');
   ResultEditCh(1,0,'Íå óäàëîñü çàãðóçèòü Windows Sockets.');
   FreeLibrary(HNDicmp);
   exit;
  end;
 ResultEditCh(3,0,'');
 ResultEditCh(1,0,'Ïîèñê õîñòà');

 Destino.S_addr := inet_addr(Pchar(hostt));
 if (Destino.S_addr = 0) then
  Host := GetHostbyName(PChar(hostt))
 else
  Host := GetHostbyAddr(@Destino,sizeof(in_addr), AF_INET);

 if (Host=nil) then
  begin
   ResultEditCh(6,0,'');
   ResultEditCh(1,0,'Õîñò íå íàéäåí');
   FreeLibrary(HNDicmp);
   exit;
  end;

 ResultEditCh(4,0,'');
 ResultEditCh(1,0,'Pinging '+hostt);

 Endereco := @Host.h_addr_list;
 HNDFile := IcmpCreateFile();
 for x:=1 to 4 do
  begin
   Ip.Ttl := char(255);
   Ip.Tos := char(0);
   Ip.IPFlags := char(60);
   Ip.OptSize := char(10);
   Ip.Options := nil;
   dwRetorno := IcmpSendEcho(HNDFile,Endereco^,0,0,Ip,Icmp,sizeof(Icmp),
   DWORD(5000));
   Addr.S_addr := icmp.source;
   ResultEditCh(5,0,'');
   ResultEditCh(1,0,IntToStr(icmp.RTTime));
  end;

 ResultEditCh(4,0,'');
 ResultEditCh(1,0,'Ïèíã çàêîí÷åí.');
 WSACleanup;
end;

 


--------------------
MaXL
PM MAIL   Вверх
Snowy
Дата 12.5.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Возьми отсюда ping.pas http://forum.vingrad.ru/index.php?showtopi...st&p=521765 
PM MAIL   Вверх
MaXL
Дата 12.5.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 24.10.2005
Где: Владивосток

Репутация: нет
Всего: 2



Огромное спасибо. Сейчас буду разбираться  smile  


--------------------
MaXL
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.