• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Пинг компьютера подключенного через маршрутизатор

  • Автор темы Shouldercannon
  • Дата начала
S

Shouldercannon

Собственно как это сделать? Данный способ не работает.
Код:
IdIcmpClient1.Host := '192.168.0.1'; // Без порта и с портом не определяет
IdIcmpClient1.Ping;
Memo1.Lines.Add('Время до хоста: ' + IntToStr(IdIcmpClient1.ReplyStatus.MsRoundTripTime) + ' ms ' + ComboBox1.Text);
 
S

sinkopa

Собственно как это сделать? Данный способ не работает.
Код:
IdIcmpClient1.Host := '192.168.0.1'; // Без порта и с портом не определяет
IdIcmpClient1.Ping;
Memo1.Lines.Add('Время до хоста: ' + IntToStr(IdIcmpClient1.ReplyStatus.MsRoundTripTime) + ' ms ' + ComboBox1.Text);
:)


...
 
S

Shouldercannon

:google:


...
Ни один из способов не работает. Маршрутизатор портит всю картину. Может я рою не в ту сторону, может вообще ненадо зацикливаться на пингующих компонентах. Я опрашиваю через UDPClient сервера, может через него можно определить пинг при помощи вычислений (полученное значение - начальное = нужное значение)? Беда просто.
 
S

sinkopa

Ни один из способов не работает.
Как так "не работает"? :)
У меня работает, проверил специально...
Маршрутизатор портит всю картину.
Маршрутизатор "портить" не может ничего... его дело "поросяче" - взял пакет и "пнул" куда велено было...
Портить могут фаервол и прокси (если есть таковые)...
Вы из консоли проверяли команду ping к какому нибудь из ваших серверов? работает?
Может я рою не в ту сторону, может вообще ненадо зацикливаться на пингующих компонентах.
Боюсь что (если Вам действительно необходимо узнать время "запрос+отклик") другого пути кроме как "пропинговать" сервер у Вас нет...
Тут вопрос еще в том "хотят ли" сервера, чтобы их пинговали... :)
Я опрашиваю через UDPClient
А вот нужен ли Вам именно ринг?
Например, если Вас устроит время между запросом Вашего UDPClient и моментом когда сервер "скажет" - "ПРИВЕТ! Ты кто?",
то сделать это действительно можно и без пинга.
Напимер так:
Код:
 var
Q,A: TTimeStamp;
implementation

//...

Q := DateTimeToTimeStamp(Now); // в обработчике запроса

//...
A := DateTimeToTimeStamp(Now); // в обработчике ответа сервера

//...
// там где надо "отчитаться" перед пользователем
ShowMessage('Я спросил... и мне ответили через ' + IntToStr(Trunc(TimeStampToMSecs(A) - TimeStampToMSecs(Q))) + ' мс.' );
Вот... но учтите, это ничего общего с ping не имеет... и время в основном зависит не от прохождения пакетов, а от того насколько быстро вам решит ответить сервер... а может у него есть клиенты и поважнее чем Вы... :)
 
S

Shouldercannon

Возможно стоит какая та защита, я забил на это и разрулил с помощью GetTickCount. Перед опросом получаю GetTickCount и при получении ответа получаю GetTickCount далее из второго вычитаю первое, вот и пинг.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!