На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (4) [1] 2 3 ... Последняя » все  ( Перейти к последнему сообщению )  
    > Перехват пакетов локальной сети
      Как в Windows 9x можно перехватывать все пакеты локальной сети, используя winsock?
        progr
        Посмотрите ссылку
        или наберите в "поиск" слово сниффер
          Написано, что надо переключить интерфейс на прием всех пакетов проходящих через интерфейс - promiscuous mode:
          PromiscuousMode=1;
          ioctlsocket(hSocket, SIO_RCVALL, PromiscuousMode);

          Но в winsock2.h нет SIO_RCVALL.
          Пишу на Visual C++ 6.0
            Цитата progr @
            Но в winsock2.h нет SIO_RCVALL.
            Пишу на Visual C++ 6.0


            обнови Platform SDK

            Цитата progr @
            Как в Windows 9x можно перехватывать все пакеты локальной сети, используя winsock?


            http://rsdn.ru/article/net/sniffer.xml

            Libpcap (WinPCAP)
            http://www.tcpdump.org/

            или придется писать NDIS/TDI драйвер
              progr
              SIO_RCVALL использует также функция WSAIoctl()
              А для SIO_RCVALL надо Mstcpip.h
                Но способ с переводом в promiscuous mode работает только начиная с Windows 2000 как я понял.

                Добавлено
                А мне нужно, чтобы это работало и более ранних версиях windows.
                  а что за локалка - на хабах, или свитчах?
                    Сеть из нескольких компов и больше ничего.
                      progr
                      Цитата
                      способ с переводом в promiscuous mode работает только начиная с Windows 2000

                      Не думаю - в Win98 реализована таже спецификация WinSock 2.2
                      Правда, в Visual Studio 6.0 нет Mstcpip.h, зато он есть в Borland CBuilder 6.
                      Вот его полный текст:

                      ExpandedWrap disabled
                        //  Copyright (c) Microsoft Corporation. All rights reserved.
                        #if _MSC_VER > 1000
                        #pragma once
                        #endif
                         
                        /* Argument structure for SIO_KEEPALIVE_VALS */
                         
                        struct tcp_keepalive {
                            u_long  onoff;
                            u_long  keepalivetime;
                            u_long  keepaliveinterval;
                        };
                         
                        // New WSAIoctl Options
                         
                        #define SIO_RCVALL            _WSAIOW(IOC_VENDOR,1)
                        #define SIO_RCVALL_MCAST      _WSAIOW(IOC_VENDOR,2)
                        #define SIO_RCVALL_IGMPMCAST  _WSAIOW(IOC_VENDOR,3)
                        #define SIO_KEEPALIVE_VALS    _WSAIOW(IOC_VENDOR,4)
                        #define SIO_ABSORB_RTRALERT   _WSAIOW(IOC_VENDOR,5)
                        #define SIO_UCAST_IF          _WSAIOW(IOC_VENDOR,6)
                        #define SIO_LIMIT_BROADCASTS  _WSAIOW(IOC_VENDOR,7)
                        #define SIO_INDEX_BIND        _WSAIOW(IOC_VENDOR,8)
                        #define SIO_INDEX_MCASTIF     _WSAIOW(IOC_VENDOR,9)
                        #define SIO_INDEX_ADD_MCAST   _WSAIOW(IOC_VENDOR,10)
                        #define SIO_INDEX_DEL_MCAST   _WSAIOW(IOC_VENDOR,11)
                         
                        // Values for use with SIO_RCVALL* options
                        #define RCVALL_OFF             0
                        #define RCVALL_ON              1
                        #define RCVALL_SOCKETLEVELONLY 2
                      Сообщение отредактировано: Oleg2004 -
                        Просто я написал пример, на который Mfcer__ дал ссылку и пример этот не работает. К тому же в той же статье с примером написано, что способ с переводом сетевой карты в promiscuous mode в windows 9x не работает.
                          Цитата progr @
                          Просто я написал пример, на который Mfcer__ дал ссылку и пример этот не работает. К тому же в той же статье с примером написано, что способ с переводом сетевой карты в promiscuous mode в windows 9x не работает.


                          winpcap должна работать под win9x
                            progr
                            Цитата
                            promiscuous mode в windows 9x не работает.

                            Я прочел тоже эту статью и не нашел убедительных доводов
                            К тому же термины RAW/IP RAW/TCP/UDP совершенно бессмысленны в смысле возможной поддержки со стороны системы
                            Система должна поддерживать только RAW-сокеты, и это все. Что мы будем формировать - это не ее дело. Другое дело, что программное обеспечение не содержит какие-то хедеры, функции и т.д. - но это дело поправимое со стороны программиста.
                              Я хотел бы без использования winpcap. Я подключил Mstcpip.h, но такой же облом. ioctlsocket(s,SIO_RCVALL,&flag) возвращает -1
                                progr
                                Цитата
                                ioctlsocket(s,SIO_RCVALL,&flag) возвращает -1

                                1. ioctlsocket() - это спецификация Winsock 1.1, а она RAW не поддерживает
                                2. Надо использовать уже указанную WSAIoctl()
                                3.-1 ничего не говорит о виде ошибки, после неудачного вызова всегда надо вызывать WSAGetLastError(), которая и сообщит об истинной причине - это правило написания сетевых программ №1
                                  А ты не мог бы дать пример правильного вызова WSAIoctl. А WSAGetLastError возвращает WSAEINVAL (Invalid argument) при использовании ioctlsocket.
                                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                  0 пользователей:


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0333 ]   [ 15 queries used ]   [ Generated: 19.05.24, 07:19 GMT ]