Привет.
Требуестя выставить виндовому сокету promiscious mode. Есть некоторый работающий
под 2K/XP код.
#define SIO_RCVALL 0x98000001
...
unsigned long flag = 1;
ioctlsocket(sock, SIO_RCVALL, &flag);
...
В таком исполнении ioctlsocket возвращает SOCKET_ERROR, однако все работает как надо.
Основная проблема заключается в том, что программа пишется не под винду, а под PharLap (
операционка реального времени поддерживающая некоторое подмножество Win32 API (в частности winsock)). Согласно закону подлости, под PharLap'ом, конечно, ничего не работает. Может есть иной способ установить promiscious mode средствами Win32 API (или некоторое альтернативное решение)?
Заранее спасибо.
P.S.
Использование WinPCap не предлогать

.
I>учти:
I>в promisc режим этим способом винда переходит только под админом.
Спасибо, но PharLap — вещь примитивная (однопроцессорная, но многопоточная), так что пользователями там и не пахнет
Здравствуйте, Аноним, Вы писали:
I>>учти:
I>>в promisc режим этим способом винда переходит только под админом.
А>Спасибо, но PharLap — вещь примитивная (однопроцессорная, но многопоточная), так что пользователями там и не пахнет
еще: то, что там говорится про поддержку винсокетов, тебе ничего может не дать, переход в промиск функцией ioctlsocket — не винсокет IMHO.
если что, попробуй WSAIoctl
if (WSAIoctl(sSockRaw,SIO_RCVALL,&bIsTrue,sizeof(bIsTrue),
NULL,0,&ulBytes,NULL,NULL))
{
return Error("Unable to start sniffer!");
}
у меня на виндах этот код никогда ошибку не выдавал