[Winpcap-users] Regarding sniffing on multiple interfaces.
Guy Harris
guy at alum.mit.edu
Mon Jun 21 15:33:44 PDT 2010
On Jun 21, 2010, at 3:50 AM, Mygapula, Sudheer IN BLR SISL wrote:
>
> Can any body explain how to implement poll\ select concept to capture packet from all available NIC?
>
> OS version: windows.
Nobody can, because Windows doesn't have poll(), and select() only applies to WinSock sockets, not to the devices that are used to implement capturing in WinPcap.
As I said in my earlier response to you:
> Otherwise, you will have to open each device separately, and use either select() or poll() (NOTE: poll() won't work for pcap captures on any version of Mac OS X prior to 10.6) ***on UN*X***, ***or WaitForMultipleObjects() on Windows*** (with WinPcap), to wait for one or more of the pcap_t's to have packets available.
so if you're using Windows, you need to use WaitForMultipleObjects():
http://msdn.microsoft.com/en-us/library/ms687025(VS.85).aspx
or MsgWaitForMultipleObjects():
http://msdn.microsoft.com/en-us/library/ms684242(VS.85).aspx
depending on whether your program is a GUI application or not. You will need to use pcap_gethandle():
http://www.winpcap.org/docs/docs_411/html/group__wpcapfunc.html#g2c415e9192c7b18a81a02300ae6f2c02
to get the handles to pass to WaitForMultipleObjects() or MsgWaitForMultipleObjects(). (Yes, they say
We disourage the use of this function because it is not portable.
but there *is* no way to do this that's portable between UN*X and Windows - the only reason to use pcap_gethandle() is if you need to do something that can't be done portably.)
More information about the Winpcap-users
mailing list