Cobbling together a minimalist ethernet-sniffing program, I was hoping to use this simple mechanism for setting the socket to "promiscuous mode" (to see all traffic going past, instead of just traffic addressed to my machine):
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) Unfortunately, it seems that that mechanism is available under Windows but not under Linux. Googling around for Linux equivalents, I found only very contorted solutions, and concluded that maybe this lacuna persists because Linux users find it convenient to invoke promiscuous mode from the command line, instead: $ sudo ip link set eth0 promisc on $ netstat -i # (Verify that the P flag is set.) This somehow fails: my sniffer continues to see only broadcasts, but if I run dumpcap at the same time, dumpcap captures lots of traffic. So my question is now two questions: . Is it true that going permiscuous under Linux must be somewhat ugly? (It's OK if it is, I'll just copy the ugly code and get moving again.) . Why doesn't the command-line "promisc on" work? (Granted, this is maybe a Linux question.) Thanks. -- To email me, substitute nowhere->runbox, invalid->com. -- https://mail.python.org/mailman/listinfo/python-list