That actually fits the bill I wouldn't dare to stop Mike from making an mTCP variant, but Mike, if you want to, grab the ETHTOOLS package since it comes with C source and might answer your promiscuous mode questions.
I had already pointed out Wiwa's code in an earlier reply in this thread ... next time I'll provide a direct link.
Regardless, after writing a TCP/IP stack from scratch I don't think I need too much help figuring out a packet dumper. Some quick experiments will clear up whether the cards are in promiscuous mode or not. My question to Russ was more along the lines of why a promiscuous mode query or setting API is not visible in the packet specification. (He does have some older source code that can query and set it, so what I really need to do is look at his source code.)
One thing to keep in mind is that if you are using a true switch and not just a hub you can be in promiscuous mode and never see anything that is not destined for your card. Switches are supposed do do that to cut down on packet looks and extraneous traffic. So even with the card in promiscuous mode, you will still only see broadcast traffic and traffic for your NIC.