IF_NAMETOINDEX(3) System Programmer's Manual IF_NAMETOINDEX(3) NAME if_nametoindex, if_indextoname, if_nameindex, if_freenameindex - convert interface index to name, and vice versa SYNOPSIS #include <net/if.h> unsigned int if_nametoindex(const char *ifname) char * if_indextoname(unsigned int ifindex, char *ifname) struct if_nameindex * if_nameindex(void) void if_freenameindex(struct if_nameindex *ptr) DESCRIPTION These functions map interface indexes to interface names (such as ``lo0''), and vice versa. The if_nametoindex() function converts an interface name specified by the ifname argument to an interface index (positive integer value). If the specified interface does not exist, 0 will be returned. if_indextoname() converts an interface index specified by the ifindex ar- gument to an interface name. The ifname argument must point to a buffer of at least IF_NAMESIZE bytes into which the interface name corresponding to the specified index is returned. (IF_NAMESIZE is also defined in <net/if.h> and its value includes a terminating null byte at the end of the interface name.) This pointer is also the return value of the func- tion. If there is no interface corresponding to the specified index, NULL is returned. if_nameindex() returns an array of if_nameindex structures. if_nametoindex is also defined in <net/if.h>, and is as follows: struct if_nameindex { unsigned int if_index; /* 1, 2, ... */ char *if_name; /* null terminated name: "le0", ... */ }; The end of the array of structures is indicated by a structure with an if_index of 0 and an if_name of NULL. The function returns a null pointer on error. The memory used for this array of structures along with the interface names pointed to by the if_name members is obtained dynamical- ly. This memory is freed by the if_freenameindex() function. if_freenameindex() takes a pointer that was returned by if_nameindex() as argument (ptr), and it reclaims the region allocated. DIAGNOSTICS if_nametoindex() returns 0 on error, positive integer on success. if_indextoname() and if_nameindex() return NULL on errors. SEE ALSO R. Gilligan, S. Thomson, J. Bound, and W. Stevens, ``Basic Socket Inter- face Extensions for IPv6,'' RFC2553, March 1999. STANDARDS These functions are defined in ``Basic Socket Interface Extensions for IPv6'' (RFC2533). BSD Experimental May 21, 1998 2 |