Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.84] |
|
Страницы: (4) 1 2 [3] 4 все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
ViGOur
Было бы интересно оооччень Что то у меня какое-то внутреннее чувство, что какая-то клизма здесь есть, и четко детерминированная, неужели только winpcap на уровне NDIS? Почему |
Сообщ.
#32
,
|
|
|
Не, там было другое - ты говорил, что на W95 нет второго винсока, а я тебе ссылку на апдейт дал. |
Сообщ.
#33
,
|
|
|
Каюсь перепутал!
Но запомнил с точностью до x. |
Сообщ.
#34
,
|
|
|
Значит облом с таким способом перехвата пакетов сети в Windows 9x?
|
Сообщ.
#35
,
|
|
|
Цитата progr @ Значит облом с таким способом перехвата пакетов сети в Windows 9x? WinPCap отменно работает под WIn9x! Даже модем слушал |
Сообщ.
#36
,
|
|
|
progr
Я тоже сожалею Но обещаю - в идеологии, почему нельзя, я разберусь - если кто другой не поможет - в ближайшее время. Ведь по идее должно все работать |
Сообщ.
#37
,
|
|
|
Насколько мне известно Win98 не поддерживает io_ctrl recv_all и поэтому RAW socket на ней не работает
|
Сообщ.
#38
,
|
|
|
Я еще раз посмотрел в MSDN.
SIO_RCVALL Enables a socket to receive all IP packets on the network. The socket handle passed to the WSAIoctl function must be of AF_INET address family, SOCK_RAW socket type, and IPPROTO_IP protocol. The socket also must be bound to an explicit local interface, which means that you cannot bind to INADDR_ANY. Вроде все ОК, но дальше: Once the socket is bound and the ioctl set, calls to the WSARecv or recv functions return IP datagrams passing through the given interface. Note that you must supply a sufficiently large buffer. Setting this ioctl requires Administrator privilege on the local computer. SIO_RCVALL is available in Windows 2000 and later versions of Windows. Читаем дальше: Some IOCTL codes require additional header files. For example, use of the SIO_RCVALL IOCTL requires the Mstcpip.h header file. Requirements Client Requires Windows XP, Windows 2000 Professional, Windows NT Workstation 3.51 and later, Windows Me, Windows 98, or Windows 95. Server Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server 3.51 and later. Header Declared in Winsock2.h. Library Link to Ws2_32.lib. DLL Requires Ws2_32.dll. Вот и пойми, чем это 98-ой отличается от 2000? Требования то одни и теже для клиента??? Ну может хедера Mstcpip.h нет в 98, так его можно поставить! Непонятки |
Сообщ.
#39
,
|
|
|
А как с помощью RAW сокетов перехватывать IPX пакеты?
|
Сообщ.
#40
,
|
|
|
progr
Для этого естественно должен быть установлен стек IPX/SPX Функция сокета должна содержать адресную константу AF_IPX Для стека IPX/SPX структура IPX-сокета выглядит так: struct sockaddr_ipx { short sa_family; /* Семейство AF_IPX */ char sa_netnum[4]; /* Номер сети */ char sa_nodenum[6]; /* Номер узла */ unsigned short sa_socket; } В остальном вроде все как и для TCP/IP Вот здесь все расписано |
Сообщ.
#41
,
|
|
|
Я пишу: SOCKET ipx_socket=socket(PF_IPX,SOCK_RAW,NSPROTO_IPX)
и ioctlsocket(ipx_socket,SIO_RCVALL,&flag) возвращает -1 |
Сообщ.
#42
,
|
|
|
progr
-1 в общем ни о чем не говорит, надо ставить WSAGetLastError, чтобы увидеть код ошибки. А вы продолжаете все это на win98? |
Сообщ.
#43
,
|
|
|
Нет, на XP
|
Сообщ.
#44
,
|
|
|
Цитата Oleg2004 @ Вот и пойми, чем это 98-ой отличается от 2000? Требования то одни и теже для клиента??? Ну может хедера Mstcpip.h нет в 98, так его можно поставить! Непонятки Имеется в виду, что сама функция доступна в 9x линейке. Разумеется, с оговорками, указанными напротив каждого параметра. |
Сообщ.
#45
,
|
|
|
WSAGetLastError для ioctlsocket выдает WSAENOTSOCK (Socket operation on non-socket). Кстати, для bind WSAGetLastError тоже выдает WSAENOTSOCK.
|