Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Помогите с кодом.

Пользователи, просматривающие топик: 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.
Post #: 1
RE: Помогите с кодом. - 2012-01-20 20:36:28.666666   
shkolote attake

Сообщений: 268
Оценки: 0
Присоединился: 2010-10-19 05:37:44.873333
ты сначала определись знаешь ты ip или нет…и что именно тебе нужно просто сформировать ping …… через командную строку(програмно) или ты хочешь сформировать полноценный ICMP запрос и получить ответ?если второе то тут попотеть придётся…
Post #: 2
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).
Post #: 3
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)&gt;0; t.free; end;
Вариант №2, ICMP API. Более грамотный:

http://www.realcoding.net/article/view/251
Post #: 4
RE: Помогите с кодом. - 2012-01-20 21:28:32.290000   
qwsa

Сообщений: 22
Оценки: 0
Присоединился: 2011-09-10 14:20:16.616666
Barkass$ спс ставлю +.

Можешь еще посоветовать как перенапривить ответ от серера. То есть я послал запрос, сервер обработал и отправил его не мне а на левый ip который например я укажу(любой).
Post #: 5
RE: Помогите с кодом. - 2012-01-20 21:41:03.860000   
Barkass$

Сообщений: 1854
Оценки: 40
Присоединился: 2008-11-11 12:19:45.216666
Вообще на сколько я знаю принцип работы Приема-отдачи, так сделать не получиться. Сервер после обработки запроса, даёт ответ именно запрашиваему клиенту, т.е. тебе. Но именно в эти подробности (на Делфе) я никогда не вдавался, честно говоря, поэтому на все 100% не могу утверждать своё мнение. Возможно как-то и можно это реализовать :)
Post #: 6
RE: Помогите с кодом. - 2012-01-21 00:25:30.066666   
shkolote attake

Сообщений: 268
Оценки: 0
Присоединился: 2010-10-19 05:37:44.873333
будь ты сервер ты бы кому прислал ответ?тот кто сделал запрос или ещё кому то?можно получить ответ от сервера и переадресовать этот ответ…
Post #: 7
RE: Помогите с кодом. - 2012-01-21 04:24:10.906666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Эээ…кхм…а IdICMPClient из палитры компонентов Indy это уже не модно?

Сервер пошлет на IP отправителя, его токо через прокси сменить можно. В чем задача то?
Post #: 8
RE: Помогите с кодом. - 2012-01-21 15:13:35.943333   
qwsa

Сообщений: 22
Оценки: 0
Присоединился: 2011-09-10 14:20:16.616666
Нет я просто натыкался на статью (к сожелениию потерял) там было написано про подмену ip но не было написано как это сделать.
Post #: 9
RE: Помогите с кодом. - 2012-01-21 15:38:03.970000   
Barkass$

Сообщений: 1854
Оценки: 40
Присоединился: 2008-11-11 12:19:45.216666
Возможно там имелось ввиду про "подмену" IP адреса на стороне клиента? - это обычный прокси, ну а в делфе это рабочий сокс.
Честно говоря я не представляю как можно "сказать серверу" что бы он отправил ответ на другой IP адрес клиента, логически и технически не стыкуется реализация подобной вещи.
Post #: 10
RE: Помогите с кодом. - 2012-01-21 15:46:37.593333   
qwsa

Сообщений: 22
Оценки: 0
Присоединился: 2011-09-10 14:20:16.616666
При формирование пакета для запроса, в него вкладывается вся нужная инфа, то есть и ip тоже вкладывается. Знатьбы как он формируется можно было бы и заменить ip :)
Post #: 11
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 - кури.
Post #: 12
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Помогите с кодом.







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.