Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

Не проходит PING на несколько адресов(IP)   Найти похожие ветки 

 
Dimich1978   (2005-10-10 14:55) [0]

Все делаю используя ИНди Компонент IdIcmpClient1
Пишу следующее:
По таймеру срабатывает
for i:=1 to 3 do
  begin
   if i=1 then ipadr:=JvIPAddress1.Text;
   if i=2 then ipadr:=JvIPAddress2.Text;
   if i=2 then ipadr:=JvIPAddress3.Text;
     Self.IdIcmpClient1.Host:=ipadr;
     Self.IdIcmpClient1.TTL:=128;
     Self.IdIcmpClient1.Ping;
     Ping (pchar(ipadr),nil,Reply,5000);
     ListBox1.Items.Add ("RawReply:"+IntToStr (Reply.RoundTripTime));
  end;
где JvIPAddress1.Text- IP серверов инетовских, которых надо пропинговать
procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
 const AReplyStatus: TReplyStatus);
begin
ListBox1.Items.Add ("Ïîâòîðåíèé:"+IntToStr (AReplyStatus.MsRoundTripTime));
Listbox1.Items.Add(("Ñòàòèñòèêà Ping äëÿ: "+AReplyStatus.FromIpAddress));
  Listbox1.Items.Add(("ïðèáëèçèòåëüíîå âðåìÿ ïðèåìà-ïåðåäà÷è: "+inttostr(AReplyStatus.MsRoundTripTime)));
  Listbox1.Items.Add(("áàéò ïîëó÷åíî: "+inttostr(AReplyStatus.BytesReceived)));
  {ïðèõîäèò 72 áàéòà, íî èçíèõ 40 áàéò ñîñòàâëÿåò çàãîëîâîê icmp ïàêåòà}
  Listbox1.Items.Add(("TTL: "+inttostr(AReplyStatus.TimeToLive)));
  Listbox1.Items.Add(("Ïîñëåäîâàòåëüíîñ&#2 42;ü Id: "+inttostr(AReplyStatus.SequenceId)));
end;
Получаю ответ:
Спервого адреса все в порядке ПИНГ ОК, по второму и третьему говорит что ПИНг для 0.0.0.0 и все.
Сервера на 100% работаю в данное время, т.е. ответ приходит.
Что не так подправьте мозги.


 
-=S..S=-   (2005-10-10 15:01) [1]

а у компонента есть свойство что то типа IdIcmpClient1.Active ?
что бы пинговать надо сначала подконектиться  что не известно .. подконектился или нет ? ... это раз ... а во вторых может просто стандартная ошибка асинхронных неблокирующих сокетов


 
Dimich1978   (2005-10-10 15:21) [2]

IdIcmpClient1.Active-нет такого.
про второе не скажу, видно только то что пингуется только один.
Пробовал и три компаненты бросить и собирать ответы с каждого Клиента,, то же самое.


 
-=S..S=-   (2005-10-10 16:01) [3]

А вы попробуйте порядок пингуемых серверов поменять :) Может он принципиально не пингуеться :)


 
Ботвин Дмитрий   (2005-10-10 16:45) [4]

-=S..S=-   (10.10.05 15:01) [1]

"стандартная ошибка асинхронных неблокирующих сокет" - Инди работает тока в блокирующем режиме :-))


 
Ботвин Дмитрий   (2005-10-10 16:47) [5]

Dimich1978   (10.10.05 14:55)

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


 
-=S..S=-   (2005-10-10 16:57) [6]


> Ботвин Дмитрий   (10.10.05 16:45) [4]

ну таких тонкостей я не знаю :)


 
Dimich1978   (2005-10-14 16:36) [7]

Если пинговать средствами винды по всем хостам, то все нормально, пинги ответов приходят, т.е. хосты пингуемые, и файерволл не блокирует эту возможность. Даже если изменить очередность пингуемых серверов, все равно отсается пинговать только первый(без разницы какой из трех ставлю первым на пинг), а второй и третий...в ауте. Так что дело я думаю в самом компоненте. Может кто еще чем сподможет?


 
Ботвин Дмитрий   (2005-10-14 17:06) [8]

Поставь ReceiveTimeout := 1000 и в цикле добавь sleep
for i:=1 to 3 do
 begin
  if i=1 then ipadr:=JvIPAddress1.Text;
  if i=2 then ipadr:=JvIPAddress2.Text;
  if i=2 then ipadr:=JvIPAddress3.Text;
    Self.IdIcmpClient1.Host:=ipadr;
    Self.IdIcmpClient1.TTL:=128;
    Self.IdIcmpClient1.Ping;
    Ping (pchar(ipadr),nil,Reply,5000);
    ListBox1.Items.Add ("RawReply:"+IntToStr (Reply.RoundTripTime));
    Sleep(1000);
 end;

Здается мне


 
Dimich1978   (2005-10-14 17:37) [9]

переправил...тоже самое сохранилось..обратно пинг проходит нормально только с первым пингуеммым хостом, с отсальными двумя фиг. Походу ошибка в компаненте.



Страницы: 1 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
1-1135001045
ССТ
2005-12-19 17:04
2006.01.22
Чтение содержимого окна-таблицы


3-1132810047
megaspring
2005-11-24 08:27
2006.01.22
Запросы&Access


4-1131728932
Aragon
2005-11-11 20:08
2006.01.22
Version Info EXE


3-1132838076
DimMih
2005-11-24 16:14
2006.01.22
Работа с DBGrid


4-1130978882
kisik
2005-11-03 03:48
2006.01.22
Отправка файла на "соседний компьютер" через IrDa