[Winpcap-users] Monitoring multiple network interfaces
soulstone
soulstone at gmx.de
Tue Dec 8 09:31:29 PST 2009
Gianluca Varenni wrote:
> ----- Original Message -----
> From: "soulstone" <soulstone at gmx.de>
> To: <winpcap-users at winpcap.org>
> Sent: Tuesday, December 08, 2009 6:16 AM
> Subject: Re: [Winpcap-users] Monitoring multiple network interfaces
>
>
>>
>> Gianluca Varenni wrote:
>>> ----- Original Message -----
>>> From: "soulstone" <soulstone at gmx.de>
>>> To: <winpcap-users at winpcap.org>
>>> Sent: Sunday, December 06, 2009 12:59 PM
>>> Subject: Re: [Winpcap-users] Monitoring multiple network interfaces
>>>
>>>
>>>> Gianluca Varenni wrote:
>>>>> ----- Original Message -----
>>>>> From: "soulstone" <soulstone at gmx.de>
>>>>> To: <winpcap-users at winpcap.org>
>>>>> Sent: Friday, December 04, 2009 7:02 AM
>>>>> Subject: Re: [Winpcap-users] Monitoring multiple network interfaces
>>>>>
>>>>>
>>>>>> Gianluca Varenni wrote:
>>>>>>> ----- Original Message -----
>>>>>>> From: "soulstone" <soulstone at gmx.de>
>>>>>>> To: <winpcap-users at winpcap.org>
>>>>>>> Sent: Thursday, December 03, 2009 8:49 AM
>>>>>>> Subject: [Winpcap-users] Monitoring multiple network interfaces
>>>>>>>
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I've tried to monitor multiple networ interfaces installed on
>>>>>>>> a system.
>>>>>>>> The reason is that I need to monitor network traffic to determine
>>>>>>>> whether a user navigates to a given url.
>>>>>>>>
>>>>>>>> I'd rather capture only packages from the interface which is
>>>>>>>> connected
>>>>>>>> to the internet but I don't know how to find out which one I need.
>>>>>>>>
>>>>>>>> So I tried to monitor all interfaces.
>>>>>>>> I did this by creating one thread per interface which calls
>>>>>>>> pcap_loop.
>>>>>>>> But this doesn't work.
>>>>>>> What do you mean by "it doesn't work"?
>>>>>> 1. I use pcap_findalldevs to get all devices.
>>>>>> 2. I open every interface by pcap_open_live.
>>>>>> 3. I use a loop to itter through all interfaces and spawn
>>>>>> a seperated thread for each call of pcap_loop(Desc, 0, @PacketHandler,
>>>>>> Err).
>>>>>>
>>>>>> Usually after that the method PacketHandler would be called
>>>>>> if I only invoke pcap_look for the correct interface with internet
>>>>>> access.
>>>>>> But if I try to monitor multiple interfaces the function PacketHandler
>>>>>> isn't called anymore.
>>>>>>
>>>>>> I also tried to reverse the loop (the first interface is coincidental
>>>>>> the one with internet access) it works.
>>>>> What's the name of the interface with real traffic? What OS are you
>>>>> running
>>>>> on?
>>>> Why does the name of the interface matter? I know which one works on my
>>>> computer but I need a way to identify the one with real traffic also for
>>>> other users without user interaction.
>>>>
>>>> I used XP, Vista, Win7 for my tests.
>>>> I've multiple network interfaces installed on these machines.
>>>>
>>> I want to know if you are capturing from the interface called "Generic
>>> dialup/VPN interface" (or any VPN/dialup one)
>>>
>> I don't capture from a "Generic dialup/VPN interface".
>> E.g. there are two normal network interfaces and 2 virtual interfaces
>> created by virtualpc on one machine.
>> Maybe this could be a problem?
>
> No.
>
> What are the parameters passed to pcap_open_live? In interested in the
> timeout value.
> Does pcap_loop ever return (even if PacketHandler is not called)?
> Can you please try using pcap_next_ex in your code and see what is the error
> code returned by it?
pcap_open_live is called with:
P := _Pcap_Open_Live(IntfaceName
, 65536 { packed size to sniff }
, 0
, 1000 { timeout }
, aErr);
Soon I'll reply because of the return values of pcap_next_ex.
>
> Have a nice day
> GV
>
>
>
>>> GV
>>>
>>>> Kind regards,
>>>> dy
>>>>
>>>>> GV
>>>>>
>>>>>
>>>>>> Example code:
>>>>>> // doesn't work
>>>>>> for i := 0 to Length(Interfaces) - 1 do
>>>>>> begin
>>>>>> // creates a thread which calls pcap_loop
>>>>>> SpawnMonitor(Interfaces[i];
>>>>>> end;
>>>>>>
>>>>>> // works, because our (now last) item is the correct NIC
>>>>>> for i := Length(ValidP) - 1 downto 0 do
>>>>>> begin
>>>>>> SpawnMonitor(Interfaces[i];
>>>>>> end;
>>>>>>
>>>>>> So the problem is that PacketHandler isn't called for all devices.
>>>>>>
>>>>>> Kind regards,
>>>>>> dy
>>>>>>
>>>>>>> GV
>>>>>>>
>>>>>>>> Specifying only one interface everything works fine.
>>>>>>>> Can I only monitor one interface at once or do I miss something?
>>>>>>>>
>>>>>>>> Maybe someone can give me an advice.
>>>>>>>>
>>>>>>>>
>>>>>>>> Kind regards,
>>>>>>>> dy
>>>>>>>> _______________________________________________
>>>>>>>> Winpcap-users mailing list
>>>>>>>> Winpcap-users at winpcap.org
>>>>>>>> https://www.winpcap.org/mailman/listinfo/winpcap-users
>>>>>>> _______________________________________________
>>>>>>> Winpcap-users mailing list
>>>>>>> Winpcap-users at winpcap.org
>>>>>>> https://www.winpcap.org/mailman/listinfo/winpcap-users
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Winpcap-users mailing list
>>>>>> Winpcap-users at winpcap.org
>>>>>> https://www.winpcap.org/mailman/listinfo/winpcap-users
>>>>> _______________________________________________
>>>>> Winpcap-users mailing list
>>>>> Winpcap-users at winpcap.org
>>>>> https://www.winpcap.org/mailman/listinfo/winpcap-users
>>>>>
>>>> _______________________________________________
>>>> Winpcap-users mailing list
>>>> Winpcap-users at winpcap.org
>>>> https://www.winpcap.org/mailman/listinfo/winpcap-users
>>> _______________________________________________
>>> Winpcap-users mailing list
>>> Winpcap-users at winpcap.org
>>> https://www.winpcap.org/mailman/listinfo/winpcap-users
>>>
>> _______________________________________________
>> Winpcap-users mailing list
>> Winpcap-users at winpcap.org
>> https://www.winpcap.org/mailman/listinfo/winpcap-users
>
> _______________________________________________
> Winpcap-users mailing list
> Winpcap-users at winpcap.org
> https://www.winpcap.org/mailman/listinfo/winpcap-users
>
More information about the Winpcap-users
mailing list