Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Парсинг пакетов

61K
12 декабря 2011 года
Dimka55
17 / / 15.01.2011
Всем добрый день. Перехватываю пакет и имею его в виде массива байт, к какому типу его надо привести, чтобы получить IP получателя и отправителя, а так же порты?
277
12 декабря 2011 года
arrjj
1.7K / / 26.01.2011
Смотря на каком уровне пакеты перехватываете.

Если на уровне TCP/IP то сначала разбираем IP-заголовок, из него получаем ip адреса, потом TCP-заголовок, из него порты получаем
61K
12 декабря 2011 года
Dimka55
17 / / 15.01.2011
Да, сначала надо разобрать IP-заголовок (для получения адреса). Если это UDP пакет, а не TCP, тогда достать оттуда порты и данные.
277
12 декабря 2011 года
arrjj
1.7K / / 26.01.2011
Ну вот видишь - всё знаешь, так чего спрашиваешь? :)
61K
12 декабря 2011 года
Dimka55
17 / / 15.01.2011
Вопрос, Как это сделать:)
277
12 декабря 2011 года
arrjj
1.7K / / 26.01.2011
ну например вот у тебя ip пакет unsigned char*
 
Код:
unsigned char *packet=//хз как ты его получил
cout<<"protocol: "<<int(packet[9])<<endl;//6-tcp 17-udp
cout<<"sender:"<<int(packet[12])<<"."<<int(packet[13])<<"."<<int(packet[14])<<"."<<int(packet[15])<<endl;
cout<<"destination:"<<int(packet[16])<<"."<<int(packet[17])<<"."<<int(packet[18])<<"."<<int(packet[19])<<endl;

Список протоколов тут:
http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
61K
13 декабря 2011 года
Dimka55
17 / / 15.01.2011
Спасибо, arrjj, разобрался. Только вот такой еще вопрос? Надо отправлять UPD пакеты на локальную машину, ну скажем, вот так

 
Код:
byte[] mas = new byte[] { 123, 45, 56, 57, 75, 56, 78 };
                UdpClient udpClient = new UdpClient();
                IPAddress ipAdress = IPAddress.Parse("127.0.0.1");
                IPEndPoint ipEndPoint = new IPEndPoint(ipAdress, 5001);
                udpClient.Connect(ipEndPoint);
                udpClient.Send(mas, 7);
                udpClient.Close();


Но почему то они не приходят, то есть сниффер их не видит. А если слать с другой машины в локалке (на адрес 10.10.0.14), то пакеты перехватываются. В чем дело?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог