Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Вниз

Не проходит 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
2-1135845650
azl
2005-12-29 11:40
2006.01.22
Корректное завершение работы программы при выключении ПК


14-1135334312
Pazitron_Brain
2005-12-23 13:38
2006.01.22
Прочитайте статью


2-1135866498
rruussllaann
2005-12-29 17:28
2006.01.22
проблема динамического создания компонента


14-1135713669
Витёк
2005-12-27 23:01
2006.01.22
Тут есть хоть один толковый программист????


2-1136390857
St74
2006-01-04 19:07
2006.01.22
Как перехватить ошибку в приложении?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский