Promiscuous ports under Linux

Rob Gaddi rgaddi at highlandtechnology.invalid
Wed May 3 21:09:08 EDT 2017


On 05/03/2017 04:57 PM, Peter Pearson wrote:
> 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.
>

Tried running it as root?

-- 
Rob Gaddi, Highland Technology -- www.highlandtechnology.com
Email address domain is currently out of order.  See above to fix.



More information about the Python-list mailing list