PCAP_FINDALLDEVS(3)                                        PCAP_FINDALLDEVS(3)



NAME
       pcap_findalldevs - get a list of capture devices

SYNOPSIS
       #include <pcap/pcap.h>

       char errbuf[PCAP_ERRBUF_SIZE];

       int pcap_findalldevs(pcap_if_t **alldevsp, char *errbuf);

DESCRIPTION
       pcap_findalldevs()  constructs  a  list  of network devices that can be
       opened with pcap_create() and pcap_activate() or with pcap_open_live().
       (Note  that  there  may be network devices that cannot be opened by the
       process calling pcap_findalldevs(), because, for example, that  process
       might not have sufficient privileges to open them for capturing; if so,
       those devices will not appear on the list.)  alldevsp is set  to  point
       to  the  first element of the list; each element of the list is of type
       pcap_if_t, and has the following members:

              next   if not NULL, a pointer to the next element in  the  list;
                     NULL for the last element of the list

              name   a  pointer  to  a  string giving a name for the device to
                     pass to pcap_open_live()

              description
                     if not NULL, a pointer to a string giving  a  human-read-
                     able description of the device

              addresses
                     a pointer to the first element of a list of addresses for
                     the interface

              flags  interface flags:

                     PCAP_IF_LOOPBACK
                            set if the interface is a loopback interface

       Each element of the list of addresses is of type pcap_addr_t,  and  has
       the following members:

              next   if  not  NULL, a pointer to the next element in the list;
                     NULL for the last element of the list

              addr   a pointer to a struct sockaddr containing an address

              netmask
                     if not NULL, a pointer to a struct sockaddr that contains
                     the  netmask  corresponding  to the address pointed to by
                     addr

              broadaddr
                     if not NULL, a pointer to a struct sockaddr that contains
                     the   broadcast  address  corresponding  to  the  address
                     pointed to by addr; may be null if the interface  doesn't
                     support broadcasts

              dstaddr
                     if not NULL, a pointer to a struct sockaddr that contains
                     the destination  address  corresponding  to  the  address
                     pointed  to by addr; may be null if the interface isn't a
                     point-to-point interface

       Note that not all the addresses in the list of addresses are  necessar-
       ily IPv4 or IPv6 addresses - you must check the sa_family member of the
       struct sockaddr before interpreting the contents of the address.

       The list of devices must be freed with pcap_freealldevs().

RETURN VALUE
       pcap_findalldevs() returns 0 on success and -1 on failure.   If  -1  is
       returned,  errbuf  is  filled  in  with  an  appropriate error message.
       errbuf is assumed to be able to hold at least PCAP_ERRBUF_SIZE chars.

SEE ALSO
       pcap(3),    pcap_create(3),    pcap_activate(3),     pcap_open_live(3),
       pcap_freealldevs(3)



                                 5 April 2008              PCAP_FINDALLDEVS(3)