PDA

View Full Version : Problema con winpcap


dileoa
18-12-2016, 10:42
Sto studiando le librerie winpcap.
Cercando di ricavare l'elenco dei device con pcap_findalldevs_ex, ma l'elenco è incompleto.
Questo è il codice:

int main()
{
DPcap MyPcap;
pcap_if_t* Device= MyPcap.GetDeviceList(PCAP_SRC_IF_STRING, NULL);
int i = 0;
while (Device)
{
printf("%d. \tName: %s\n", ++i, MyPcap.GetDeviceName(Device));
printf("\tDescription: %s\n", MyPcap.GetDeviceDescription(Device));
Device = Device->next;
}
}

Dove DPcap è

class DPcap
{
//-----------------------------------------------------------------------------------------
public:
DPcap();
~DPcap();
void FreeDeviceList();
char* GetDeviceDescription(pcap_if_t* device);
pcap_if_t* GetDeviceList(char* source, pcap_rmtauth* auth);
char* GetDeviceName(pcap_if_t* device);
//-----------------------------------------------------------------------------------------
protected:
//-----------------------------------------------------------------------------------------
private:
pcap_if_t* DeviceList;
char* IPAddress;
char* NetMask;
char* Error;
//-----------------------------------------------------------------------------------------
};
//---------------------------------------------------------------------------------------------
// Inline
inline void DPcap::FreeDeviceList() { if (DeviceList != NULL)pcap_freealldevs(DeviceList); }
inline char* DPcap::GetDeviceDescription(pcap_if_t* device) { return device->description; };
inline char* DPcap::GetDeviceName(pcap_if_t* device) { return device->name; }

e GetDeviceList è

pcap_if_t * DPcap::GetDeviceList(char* source, pcap_rmtauth* auth)
{
//---------------------------------------------------------------------------------------------
if (pcap_findalldevs_ex(source, auth, &DeviceList, Error) == 0)
return DeviceList;
else
return NULL;
//---------------------------------------------------------------------------------------------
}

Mi sembra di aver seguito tutte le indicazioni del tutorial e non capisco come mai non riesco a vedere tutti i device che mi risultano da ipconfig.
Grazie per il vostro aiuto.
ADL