Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сниффер [D5, WinXP]


Сергей Ю. ©   (2004-04-06 10:00:00) 

Здесь http://www.delphimaster.ru/cgi-bin/forum.pl?id=1080924168&n=4обсуждали вопрос создания сниффера. Я забил код Verg-а, но он у меня выдает сообщение: Требуемый адрес для своего контекста неверен. Чтобы это значило? Сообщение вылазит после запуска bind?


Сергей Ю.   (2004-04-06 14:55:00) [1]

Громадное Вам спасибо. Все работает, ура!!!


Verg   (2004-04-06 14:50:00) [2]

И без 2-го винсока не обойдешься.

Возмешь его здесь:

http://home.earthlink.net/~akonshin/index.htm

Кроме того вот еще вспом. модуль
unit mstcpip;

interface
uses Winsock2;
type
  _tcp_keepalive  = packed record
     onoff : u_long;
     keepalivetime : u_long;
     keepaliveinterval : u_long;
  end;

const
// New WSAIoctl Options
SIO_RCVALL                           = IOC_IN or IOC_VENDOR or 1;
SIO_RCVALL_MCAST                     = IOC_IN or IOC_VENDOR or 2;
SIO_RCVALL_IGMPMCAST                 = IOC_IN or IOC_VENDOR or 3;
SIO_KEEPALIVE_VALS                   = IOC_IN or IOC_VENDOR or 4;
SIO_ABSORB_RTRALERT                  = IOC_IN or IOC_VENDOR or 5;
SIO_UCAST_IF                         = IOC_IN or IOC_VENDOR or 6;
SIO_LIMIT_BROADCASTS                 = IOC_IN or IOC_VENDOR or 7;
SIO_INDEX_BIND                       = IOC_IN or IOC_VENDOR or 8;
SIO_INDEX_MCASTIF                    = IOC_IN or IOC_VENDOR or 9;
SIO_INDEX_ADD_MCAST                  = IOC_IN or IOC_VENDOR or 10;
SIO_INDEX_DEL_MCAST                  = IOC_IN or IOC_VENDOR or 11;

// Values for use with SIO_RCVALL* options
 RCVALL_OFF             = 0;
 RCVALL_ON              = 1;
 RCVALL_SOCKETLEVELONLY = 2;

implementation

end.


Сергей Ю.   (2004-04-06 14:46:00) [3]

Сорри за мою тупость. Адрес 192.168.15.103 bind принимает, а ошибку выдает ioctlsocket. У меня нет библиотеки mstcpip и поэтому у меня нет константы SIO_RCVALL, я в инете гдето нарыл что туда суют 0x98000001, видно это нетак :). Может подскажете где взять недостающую константу :)?


Verg   (2004-04-06 14:19:00) [4]

015 - это десятичное 13 - Вы это понимаете?
Так что 192.168.015.103 - это на самом деле 192.168.13.103


> то он говорит что неправильно введен аргумент.


Точную цитату дайте.


Сергей Ю.   (2004-04-06 14:04:00) [5]

Я сижу под админом, в противном случае он рушается еще раньше при создании сокета, мол запрещено правами и все такое. IpConfig говорит  что у сетевухи 192.168.15.103, но если адрес задать так (15 вместо 015), то он говорит что неправильно введен аргумент.


Verg   (2004-04-06 13:51:00) [6]

Еще одна "тонкость" - у тебя должны быть привелегии Администратора.


Verg   (2004-04-06 13:45:00) [7]

Из командой строки набери IpConfig и убедись, что сет. адаптер с таким адресом реально существует.


Сергей Ю.   (2004-04-06 13:35:00) [8]

Я пишу 192.168.015.103 это адрес моей машины в моей локальной сетке.


Verg   (2004-04-06 10:13:00) [9]

А какой адрес ты ему подставляешь в параметры запуска?


Наверх

Титульная страница Поиск, карта сайта Написать письмо