On Nov 2, 2011, at 2:07 PM, 임영빈 wrote:

> I'm using WinPcap in my application.
> I'd like to capture packets communicating with external hosts.(not local 
> network hosts)
> So I tried 'not net localnet' filtering option, but I encountered syntax 
> error.
> Does 'localnet' keyword(I'm not sure whether it is a keyword) work in WinPCap?

It's not a keyword, it's a name that gets looked up by getnetbyname() on 
systems that have getnetbyname().  Windows doesn't have it, so you can't use 
names for the "net" keyword with WinPcap.

> It seems that in libpcap it works.

It works *if* it's in /etc/networks, which it isn't on all systems:

        $ tcpdump -d -i en1 not net localnet
        tcpdump: unknown network 'localnet'
        $ sw_vers
        ProductName:    Mac OS X
        ProductVersion: 10.6.8
        BuildVersion:   10K549

However, that raises the question of what "the" local network is; if I were to 
plug the machine on which I ran those commands into an Ethernet, it would be 
connected to two networks (our Wi-Fi network and the Ethernet into which it was 
plugged), so, even if the system were to construct a "localnet" entry in 
/etc/networks on the fly, it would have to pick one of those.

What you might want to do is use pcap_lookupnet() to get an IPv4 address and 
netmask for the network to which the interface on which you're capturing is 
connected, and construct a filter expression string using those.  Perhaps 
libpcap/WinPcap should add filter syntax to support that (it already has 
"broadcast" to check for local net IP broadcasts, also using the IPv4 address 
and netmask).  The pcap-filter man page should also be updated not to speak of 
"localnet" as working.
_______________________________________________
Winpcap-users mailing list
[email protected]
https://www.winpcap.org/mailman/listinfo/winpcap-users

Reply via email to