Wireshark-users: Re: [Wireshark-users] Problem regarding using the libpcap libraries

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Wed, 13 May 2009 09:48:37 -0700
On May 13, 2009, at 5:49 AM, adapa.ajith@xxxxxxxxx wrote:

Sorry I dont know whether to ask this question in this mailing list or not. Please tell me appropriate mailing list if I am at wrong place.
The right mailing list for libpcap questions is tcpdump-workers@xxxxxxxxxxx 
.
I am using libpcap libraries to write a basic C program to print the network interface details. So I am using the following C code
  dev = pcap_lookupdev(errbuf);
  /* error checking */
  if(dev == NULL)
  {
   printf("%s\n",errbuf);
   exit(1);
  }

But it is showing an ERROR message - "no suitable device found"

But I do have a network interface since I am able to access Internet on my Linux Machine.
Yes, but there are no devices that libpcap can open, because...

I am running the app in normal user mode as I dont have the ROOT user permission.
...Linux, as far as I know, requires root permission to create a  
PF_PACKET socket and bind a device to it (which is how libpcap works  
on Linux).
pcap_findalldevs(), and routines such as pcap_lookupdev() that call  
it, are intended to be used to get a list of devices on which you can  
capture; not all network interfaces on a machine will support  
capturing - for example, in current versions of Solaris, you can't  
capture on the loopback device.  Therefore, pcap_findalldevs() only  
returns the devices that it can open.
If you just want to print network interface details, and aren't going  
to be capturing on those interfaces - for example, if you want to make  
a program like ifconfig - libpcap isn't the right choice.