Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2007, 21:44   #1
Маркъ
Пользователь
 
Регистрация: 02.02.2007
Сообщений: 32
Вопрос Как определить ping

Как вообще посредством Delphi можно определить пинг до определённого сервера или ip. Слышал, что это можно сделать через Indy, но что-то у меня ничего толком не получается. Помогите кто знает!

Последний раз редактировалось Маркъ; 17.04.2007 в 21:48.
Маркъ вне форума Ответить с цитированием
Старый 18.04.2007, 07:34   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Компонент IDIcmp метод Echo
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 18.04.2007, 13:10   #3
Маркъ
Пользователь
 
Регистрация: 02.02.2007
Сообщений: 32
По умолчанию

Посмотрел ICICMP, что-то нет там такого метода (Indy 10). Если можно поподробнее опишите как (пару строчек кода для примера).
Маркъ вне форума Ответить с цитированием
Старый 18.04.2007, 13:23   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

метод ping , ошибся
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 18.04.2007, 14:33   #5
Маркъ
Пользователь
 
Регистрация: 02.02.2007
Сообщений: 32
По умолчанию

Делаю так:
Код:
icmp.Host:=Edit1.Text;
Memo1.Clear;
for i := 1 to 4 do begin
ICMP.Ping;
sleep(1000);
// ???
end;
Понимаю, что после Sllep(1000); надо как-то узнать проверенный пинг, но как?
Маркъ вне форума Ответить с цитированием
Старый 18.04.2007, 15:11   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
  IdIcmpClient;

type
  TForm1 = class(TForm)
    icmp: TIdIcmpClient;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
icmp.Host:='194.87.0.50';
icmp.Ping();
showmessage('Время до хоста: '+inttostr(icmp.ReplyStatus.MsRoundTripTime)+'ms');
end;

end.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 31.08.2008, 17:32   #7
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

при повторном нажатии на кнопку показывает 0ms...
нужно обнулить что-то или рестартануть?
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 24.05.2011, 17:51   #8
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
  IdIcmpClient;

type
  TForm1 = class(TForm)
    icmp: TIdIcmpClient;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
icmp.Host:='194.87.0.50';
icmp.Ping();
showmessage('Время до хоста: '+inttostr(icmp.ReplyStatus.MsRoundTripTime)+'ms');
end;

end.
Данный способ не работает если опрашиваемый компьютер подключен через маршрутизатор. Как исправить положение?

Последний раз редактировалось Shouldercannon; 24.05.2011 в 18:24.
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Среди 20 введёных чисел определить чётные, распечатать их, определить min Spade Помощь студентам 4 15.06.2008 18:39
Вопрос о Ping! TyoshA Работа с сетью в Delphi 2 05.02.2008 22:10
Ping Баламут Работа с сетью в Delphi 5 23.08.2007 15:17
Многопоточный Ping Квэнди Работа с сетью в Delphi 0 18.12.2006 15:01