diff options
author | Cameron Katri <me@cameronkatri.com> | 2021-05-10 14:59:18 -0400 |
---|---|---|
committer | Cameron Katri <me@cameronkatri.com> | 2021-05-10 14:59:18 -0400 |
commit | 741efd6ee2f0defb40def8351d3f5a92fc0ab7c8 (patch) | |
tree | dcc3711c179264f1b74f97aa606907f52a8066a0 /lib/libpcap/libpcap/pcap_findalldevs.3pcap | |
parent | 0d0ad219a6366e30e1b1ae41f79c8e10a21ade6d (diff) | |
parent | d7dbd335bfc76ace0a0d3a13a5ba83b7c6734bfc (diff) | |
download | apple_cmds-741efd6ee2f0defb40def8351d3f5a92fc0ab7c8.tar.gz apple_cmds-741efd6ee2f0defb40def8351d3f5a92fc0ab7c8.tar.zst apple_cmds-741efd6ee2f0defb40def8351d3f5a92fc0ab7c8.zip |
Merge branch 'apple'
Diffstat (limited to 'lib/libpcap/libpcap/pcap_findalldevs.3pcap')
-rw-r--r-- | lib/libpcap/libpcap/pcap_findalldevs.3pcap | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/lib/libpcap/libpcap/pcap_findalldevs.3pcap b/lib/libpcap/libpcap/pcap_findalldevs.3pcap new file mode 100644 index 0000000..712e255 --- /dev/null +++ b/lib/libpcap/libpcap/pcap_findalldevs.3pcap @@ -0,0 +1,231 @@ +.\" Copyright (c) 1994, 1996, 1997 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that: (1) source code distributions +.\" retain the above copyright notice and this paragraph in its entirety, (2) +.\" distributions including binary code include the above copyright notice and +.\" this paragraph in its entirety in the documentation or other materials +.\" provided with the distribution, and (3) all advertising materials mentioning +.\" features or use of this software display the following acknowledgement: +.\" ``This product includes software developed by the University of California, +.\" Lawrence Berkeley Laboratory and its contributors.'' Neither the name of +.\" the University nor the names of its contributors may be used to endorse +.\" or promote products derived from this software without specific prior +.\" written permission. +.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED +.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +.\" +.TH PCAP_FINDALLDEVS 3PCAP "22 August 2018" +.SH NAME +pcap_findalldevs, pcap_freealldevs \- get a list of capture devices, and +free that list +.SH SYNOPSIS +.nf +.ft B +#include <pcap/pcap.h> +.ft +.LP +.nf +.ft B +char errbuf[PCAP_ERRBUF_SIZE]; +.ft +.LP +.ft B +int pcap_findalldevs(pcap_if_t **alldevsp, char *errbuf); +void pcap_freealldevs(pcap_if_t *alldevs); +.ft +.fi +.SH DESCRIPTION +.B pcap_findalldevs() +constructs a list of network devices that can be opened with +.B pcap_create(3PCAP) +and +.B pcap_activate(3PCAP) +or with +.BR pcap_open_live(3PCAP) . +(Note that there may be network devices that cannot be opened by the +process calling +.BR pcap_findalldevs() , +because, for example, that process does not have sufficient privileges +to open them for capturing; if so, those devices will not appear on the +list.) +If +.B pcap_findalldevs() +succeeds, the pointer pointed to by +.I alldevsp +is set to point to the first element of the list, or to +.B NULL +if no devices were found (this is considered success). +Each element of the list is of type +.BR pcap_if_t , +and has the following members: +.RS +.TP +.B next +if not +.BR NULL , +a pointer to the next element in the list; +.B NULL +for the last element of the list +.TP +.B name +a pointer to a string giving a name for the device to pass to +.B pcap_open_live() +.TP +.B description +if not +.BR NULL , +a pointer to a string giving a human-readable description of the device +.TP +.B addresses +a pointer to the first element of a list of network addresses for the +device, +or +.B NULL +if the device has no addresses +.TP +.B flags +device flags: +.RS +.TP +.B PCAP_IF_LOOPBACK +set if the device is a loopback interface +.TP +.B PCAP_IF_UP +set if the device is up +.TP +.B PCAP_IF_RUNNING +set if the device is running +.TP +.B PCAP_IF_WIRELESS +set if the device is a wireless interface; this includes IrDA as well as +radio-based networks such as IEEE 802.15.4 and IEEE 802.11, so it +doesn't just mean Wi-Fi +.TP +.B PCAP_IF_CONNECTION_STATUS +a bitmask for an indication of whether the adapter is connected or not; +for wireless interfaces, "connected" means "associated with a network" +.TP +The possible values for the connection status bits are: +.TP +.B PCAP_IF_CONNECTION_STATUS_UNKNOWN +it's unknown whether the adapter is connected or not +.TP +.B PCAP_IF_CONNECTION_STATUS_CONNECTED +the adapter is connected +.TP +.B PCAP_IF_CONNECTION_STATUS_DISCONNECTED +the adapter is disconnected +.TP +.B PCAP_IF_CONNECTION_STATUS_NOT_APPLICABLE +the notion of "connected" and "disconnected" don't apply to this +interface; for example, it doesn't apply to a loopback device +.RE +.RE +.PP +Each element of the list of addresses is of type +.BR pcap_addr_t , +and has the following members: +.RS +.TP +.B next +if not +.BR NULL , +a pointer to the next element in the list; +.B NULL +for the last element of the list +.TP +.B addr +a pointer to a +.B "struct sockaddr" +containing an address +.TP +.B netmask +if not +.BR NULL , +a pointer to a +.B "struct sockaddr" +that contains the netmask corresponding to the address pointed to by +.B addr +.TP +.B broadaddr +if not +.BR NULL , +a pointer to a +.B "struct sockaddr" +that contains the broadcast address corresponding to the address pointed +to by +.BR addr ; +may be null if the device doesn't support broadcasts +.TP +.B dstaddr +if not +.BR NULL , +a pointer to a +.B "struct sockaddr" +that contains the destination address corresponding to the address pointed +to by +.BR addr ; +may be null if the device isn't a point-to-point interface +.RE +.PP +Note that the addresses in the list of addresses might be IPv4 +addresses, IPv6 addresses, or some other type of addresses, so you must +check the +.B sa_family +member of the +.B "struct sockaddr" +before interpreting the contents of the address; do not assume that the +addresses are all IPv4 addresses, or even all IPv4 or IPv6 addresses. +IPv4 addresses have the value +.BR AF_INET , +IPv6 addresses have the value +.B AF_INET6 +(which older operating systems that don't support IPv6 might not +define), and other addresses have other values. Whether other addresses +are returned, and what types they might have is platform-dependent. +For IPv4 addresses, the +.B "struct sockaddr" +pointer can be interpreted as if it pointed to a +.BR "struct sockaddr_in" ; +for IPv6 addresses, it can be interpreted as if it pointed to a +.BR "struct sockaddr_in6". +.PP +The list of devices must be freed with +.BR pcap_freealldevs(3PCAP) , +which frees the list pointed to by +.IR alldevs . +.SH RETURN VALUE +.B pcap_findalldevs() +returns 0 on success and +.B PCAP_ERROR +on failure; as indicated, finding no +devices is considered success, rather than failure, so 0 will be +returned in that case. If +.B PCAP_ERROR +is returned, +.I errbuf +is filled in with an appropriate error message. +.I errbuf +is assumed to be able to hold at least +.B PCAP_ERRBUF_SIZE +chars. +.SH BACKWARD COMPATIBILITY +.PP +The +.B PCAP_IF_UP +and +.B PCAP_IF_RUNNING +constants became available in libpcap release 1.6.1. The +.BR PCAP_IF_WIRELESS , +.BR PCAP_IF_CONNECTION_STATUS , +.BR PCAP_IF_CONNECTION_STATUS_UNKNOWN , +.BR PCAP_IF_CONNECTION_STATUS_CONNECTED , +.BR PCAP_IF_CONNECTION_STATUS_DISCONNECTED , +and +.B PCAP_IF_CONNECTION_STATUS_NOT_APPLICABLE +constants became available in libpcap release 1.9.0. +.SH SEE ALSO +pcap(3PCAP) |