Помогите с кодом.
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Помогите с кодом. - 2012-01-20 20:08:05.310000
|
|
|
qwsa
Сообщений: 22
Оценки: 0
Присоединился: 2011-09-10 14:20:16.616666
|
Помогите как в Delphi сделать отправку запроса на определенный ip 128 байтового пакета, что-то вроде запроса ip. То есть наподоби проверки пинга в CMD.EXE. только в Delphi.
|
|
|
RE: Помогите с кодом. - 2012-01-20 20:36:28.666666
|
|
|
shkolote attake
Сообщений: 268
Оценки: 0
Присоединился: 2010-10-19 05:37:44.873333
|
ты сначала определись знаешь ты ip или нет…и что именно тебе нужно просто сформировать ping …… через командную строку(програмно) или ты хочешь сформировать полноценный ICMP запрос и получить ответ?если второе то тут попотеть придётся…
|
|
|
RE: Помогите с кодом. - 2012-01-20 21:13:37.706666
|
|
|
qwsa
Сообщений: 22
Оценки: 0
Присоединился: 2011-09-10 14:20:16.616666
|
quote:
ORIGINAL: shkolote attake ты сначала определись знаешь ты ip или нет…и что именно тебе нужно просто сформировать ping …… через командную строку(програмно) или ты хочешь сформировать полноценный ICMP запрос и получить ответ?если второе то тут попотеть придётся… Да скажем я знаю IP, мне просто надо узнать как через Delphi запросить ping (как в команндной строке(pinp ip), только в Delphi).
|
|
|
RE: Помогите с кодом. - 2012-01-20 21:18:08.546666
|
|
|
Barkass$
Сообщений: 1854
Оценки: 40
Присоединился: 2008-11-11 12:19:45.216666
|
Ну, самый простой вариант использовав консольное приложение и перехватить вывод из него: Function Ping(host:string):boolean;
var params, CommandLine:string;
t:TStringList;
i:integer;
begin
Params := Format('-s%d ', [32]);
Params := Params+Format('-c%d ', [1]);
CommandLine := Format('ping %s%s', [Params, host]);
t:=TStringList.Create;
ExecCmdine(CommandLine, t);
Result:=pos('1 received, 0% packet loss', t.text)>0;
t.free;
end; Вариант №2, ICMP API. Более грамотный: http://www.realcoding.net/article/view/251
|
|
|
RE: Помогите с кодом. - 2012-01-20 21:28:32.290000
|
|
|
qwsa
Сообщений: 22
Оценки: 0
Присоединился: 2011-09-10 14:20:16.616666
|
Barkass$ спс ставлю +. Можешь еще посоветовать как перенапривить ответ от серера. То есть я послал запрос, сервер обработал и отправил его не мне а на левый ip который например я укажу(любой).
|
|
|
RE: Помогите с кодом. - 2012-01-20 21:41:03.860000
|
|
|
Barkass$
Сообщений: 1854
Оценки: 40
Присоединился: 2008-11-11 12:19:45.216666
|
Вообще на сколько я знаю принцип работы Приема-отдачи, так сделать не получиться. Сервер после обработки запроса, даёт ответ именно запрашиваему клиенту, т.е. тебе. Но именно в эти подробности (на Делфе) я никогда не вдавался, честно говоря, поэтому на все 100% не могу утверждать своё мнение. Возможно как-то и можно это реализовать :)
|
|
|
RE: Помогите с кодом. - 2012-01-21 00:25:30.066666
|
|
|
shkolote attake
Сообщений: 268
Оценки: 0
Присоединился: 2010-10-19 05:37:44.873333
|
будь ты сервер ты бы кому прислал ответ?тот кто сделал запрос или ещё кому то?можно получить ответ от сервера и переадресовать этот ответ…
|
|
|
RE: Помогите с кодом. - 2012-01-21 04:24:10.906666
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Эээ…кхм…а IdICMPClient из палитры компонентов Indy это уже не модно? Сервер пошлет на IP отправителя, его токо через прокси сменить можно. В чем задача то?
|
|
|
RE: Помогите с кодом. - 2012-01-21 15:13:35.943333
|
|
|
qwsa
Сообщений: 22
Оценки: 0
Присоединился: 2011-09-10 14:20:16.616666
|
Нет я просто натыкался на статью (к сожелениию потерял) там было написано про подмену ip но не было написано как это сделать.
|
|
|
RE: Помогите с кодом. - 2012-01-21 15:38:03.970000
|
|
|
Barkass$
Сообщений: 1854
Оценки: 40
Присоединился: 2008-11-11 12:19:45.216666
|
Возможно там имелось ввиду про "подмену" IP адреса на стороне клиента? - это обычный прокси, ну а в делфе это рабочий сокс. Честно говоря я не представляю как можно "сказать серверу" что бы он отправил ответ на другой IP адрес клиента, логически и технически не стыкуется реализация подобной вещи.
|
|
|
RE: Помогите с кодом. - 2012-01-21 15:46:37.593333
|
|
|
qwsa
Сообщений: 22
Оценки: 0
Присоединился: 2011-09-10 14:20:16.616666
|
При формирование пакета для запроса, в него вкладывается вся нужная инфа, то есть и ip тоже вкладывается. Знатьбы как он формируется можно было бы и заменить ip :)
|
|
|
RE: Помогите с кодом. - 2012-01-23 01:44:37.243333
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Нет, Боже мой, нет. Всё не так. Кури протоколы и сети вообще. Есть марштрутизируемый межсетевой протокол IP. Ну такая штука,которая обеспечивает всю эту фигню с адресами и много чего ещё. Поверх него реализуется стек TCP/IP, обязательной частью которого является служебный ICMP. Он то и обеспечивает пинг. Адресация от него не зависит никак, это штука более глубокого уровня, просто пакеты ICMP оборачиваются в транспортные, ip-шные, в заголовке последних как раз и пишется адрес отправителя/получателя. Серверу поэтому ничего сказать нельзя, это просто программа, которая отвечает на запросы разного вида. В самом пинговом или другом пакете ( это же частный случай, ICMP-сообщения могут иметь разный тип, в зависимости от этого их по-разному обрабатывают, мало ли для чего оно шлется) тоже не разгуляешься. И да, подмена IP это именно то, что тебе сказали, из другой оперы. http://ru.wikipedia.org/wiki/ICMP - кури.
|
|
|
|
|