# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 05:52+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "getifaddrs" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "2024-05-02" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "getifaddrs, freeifaddrs - get interface addresses" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "LIBRARY" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "Standard C library (I, I<-lc>)" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "" "B<#include Esys/types.hE>\n" "B<#include Eifaddrs.hE>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "" "BIB<);>\n" "BIB<);>\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "The B() function creates a linked list of structures describing " "the network interfaces of the local system, and stores the address of the " "first item of the list in I<*ifap>. The list consists of I " "structures, defined as follows:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "" "struct ifaddrs {\n" " struct ifaddrs *ifa_next; /* Next item in list */\n" " char *ifa_name; /* Name of interface */\n" " unsigned int ifa_flags; /* Flags from SIOCGIFFLAGS */\n" " struct sockaddr *ifa_addr; /* Address of interface */\n" " struct sockaddr *ifa_netmask; /* Netmask of interface */\n" " union {\n" " struct sockaddr *ifu_broadaddr;\n" " /* Broadcast address of interface */\n" " struct sockaddr *ifu_dstaddr;\n" " /* Point-to-point destination address */\n" " } ifa_ifu;\n" "#define ifa_broadaddr ifa_ifu.ifu_broadaddr\n" "#define ifa_dstaddr ifa_ifu.ifu_dstaddr\n" " void *ifa_data; /* Address-specific data */\n" "};\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "The I field contains a pointer to the next structure on the list, " "or NULL if this is the last item of the list." msgstr "" #. The constant #. .B IF NAMESIZE #. indicates the maximum length of this field. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "The I points to the null-terminated interface name." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "The I field contains the interface flags, as returned by the " "B B(2) operation (see B(7) for a list of " "these flags)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "The I field points to a structure containing the interface " "address. (The I subfield should be consulted to determine the " "format of the address structure.) This field may contain a null pointer." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "The I field points to a structure containing the netmask " "associated with I, if applicable for the address family. This " "field may contain a null pointer." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "Depending on whether the bit B or B is set " "in I (only one can be set at a time), either I " "will contain the broadcast address associated with I (if " "applicable for the address family) or I will contain the " "destination address of the point-to-point interface." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "The I field points to a buffer containing address-family-specific " "data; this field may be NULL if there is no such data for this interface." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "The data returned by B() is dynamically allocated and should be " "freed using B() when no longer needed." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "On success, B() returns zero; on error, -1 is returned, and " "I is set to indicate the error." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "ERRORS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "B() may fail and set I for any of the errors specified " "for B(2), B(2), B(2), B(2), " "B(2), B(3), or B(3)." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "ATTRIBUTES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "For an explanation of the terms used in this section, see B(7)." msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "Interface" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "Attribute" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "Value" msgstr "" #. type: tbl table #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid ".na\n" msgstr "" #. type: tbl table #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid ".nh\n" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "" "B(),\n" "B()" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "Thread safety" msgstr "" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "MT-Safe" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "STANDARDS" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron msgid "None." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "HISTORY" msgstr "" #. , but the BSD-derived documentation generally #. appears to be confused and obsolete on this point. #. i.e., commonly it still says one of them will be NULL, even if #. the ifa_ifu union is already present #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron msgid "" "This function first appeared in BSDi and is present on the BSD systems, but " "with slightly different semantics documented\\[em]returning one entry per " "interface, not per address. This means I and other fields can " "actually be NULL if the interface has no address, and no link-level address " "is returned if the interface has an IP address assigned. Also, the way of " "choosing either I or I differs on various " "systems." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron msgid "" "B() first appeared in glibc 2.3, but before glibc 2.3.3, the " "implementation supported only IPv4 addresses; IPv6 support was added in " "glibc 2.3.3. Support of address families other than IPv4 is available only " "on kernels that support netlink." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "The addresses returned on Linux will usually be the IPv4 and IPv6 addresses " "assigned to the interface, but also one B address per interface " "containing lower-level details about the interface and its physical layer. " "In this case, the I field may contain a pointer to a I, defined in Ilinux/if_link.hE> (in Linux 2.4 and " "earlier, I, defined in Ilinux/netdevice." "hE>), which contains various interface attributes and statistics." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "EXAMPLES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "The program below demonstrates the use of B(), B(), " "and B(3). Here is what we see when running this program on one " "system:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "" "$ B<./a.out>\n" "lo AF_PACKET (17)\n" " tx_packets = 524; rx_packets = 524\n" " tx_bytes = 38788; rx_bytes = 38788\n" "wlp3s0 AF_PACKET (17)\n" " tx_packets = 108391; rx_packets = 130245\n" " tx_bytes = 30420659; rx_bytes = 94230014\n" "em1 AF_PACKET (17)\n" " tx_packets = 0; rx_packets = 0\n" " tx_bytes = 0; rx_bytes = 0\n" "lo AF_INET (2)\n" " address: E127.0.0.1E\n" "wlp3s0 AF_INET (2)\n" " address: E192.168.235.137E\n" "lo AF_INET6 (10)\n" " address: E::1E\n" "wlp3s0 AF_INET6 (10)\n" " address: Efe80::7ee9:d3ff:fef5:1a91%wlp3s0E\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "Program source" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "" "#define _GNU_SOURCE /* To get defns of NI_MAXSERV and NI_MAXHOST */\n" "#include Earpa/inet.hE\n" "#include Esys/socket.hE\n" "#include Enetdb.hE\n" "#include Eifaddrs.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" "#include Elinux/if_link.hE\n" "\\&\n" "int main(int argc, char *argv[])\n" "{\n" " struct ifaddrs *ifaddr;\n" " int family, s;\n" " char host[NI_MAXHOST];\n" "\\&\n" " if (getifaddrs(&ifaddr) == -1) {\n" " perror(\"getifaddrs\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Walk through linked list, maintaining head pointer so we\n" " can free list later. */\n" "\\&\n" " for (struct ifaddrs *ifa = ifaddr; ifa != NULL;\n" " ifa = ifa-Eifa_next) {\n" " if (ifa-Eifa_addr == NULL)\n" " continue;\n" "\\&\n" " family = ifa-Eifa_addr-Esa_family;\n" "\\&\n" " /* Display interface name and family (including symbolic\n" " form of the latter for the common families). */\n" "\\&\n" " printf(\"%-8s %s (%d)\\en\",\n" " ifa-Eifa_name,\n" " (family == AF_PACKET) ? \"AF_PACKET\" :\n" " (family == AF_INET) ? \"AF_INET\" :\n" " (family == AF_INET6) ? \"AF_INET6\" : \"???\",\n" " family);\n" "\\&\n" " /* For an AF_INET* interface address, display the address. */\n" "\\&\n" " if (family == AF_INET || family == AF_INET6) {\n" " s = getnameinfo(ifa-Eifa_addr,\n" " (family == AF_INET) ? sizeof(struct sockaddr_in) :\n" " sizeof(struct sockaddr_in6),\n" " host, NI_MAXHOST,\n" " NULL, 0, NI_NUMERICHOST);\n" " if (s != 0) {\n" " printf(\"getnameinfo() failed: %s\\en\", gai_strerror(s));\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " printf(\"\\et\\etaddress: E%sE\\en\", host);\n" "\\&\n" " } else if (family == AF_PACKET && ifa-Eifa_data != NULL) {\n" " struct rtnl_link_stats *stats = ifa-Eifa_data;\n" "\\&\n" " printf(\"\\et\\ettx_packets = %10u; rx_packets = %10u\\en\"\n" " \"\\et\\ettx_bytes = %10u; rx_bytes = %10u\\en\",\n" " stats-Etx_packets, stats-Erx_packets,\n" " stats-Etx_bytes, stats-Erx_bytes);\n" " }\n" " }\n" "\\&\n" " freeifaddrs(ifaddr);\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron msgid "" "B(2), B(2), B(2), B(7), B(8)" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "2023-02-05" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: SH #: debian-bookworm #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: debian-bookworm msgid "" "The B() function first appeared in glibc 2.3, but before glibc " "2.3.3, the implementation supported only IPv4 addresses; IPv6 support was " "added in glibc 2.3.3. Support of address families other than IPv4 is " "available only on kernels that support netlink." msgstr "" #. , but the BSD-derived documentation generally #. appears to be confused and obsolete on this point. #. i.e., commonly it still says one of them will be NULL, even if #. the ifa_ifu union is already present #. type: Plain text #: debian-bookworm msgid "" "Not in POSIX.1. This function first appeared in BSDi and is present on the " "BSD systems, but with slightly different semantics documented\\[em]returning " "one entry per interface, not per address. This means I and other " "fields can actually be NULL if the interface has no address, and no link-" "level address is returned if the interface has an IP address assigned. " "Also, the way of choosing either I or I differs " "on various systems." msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" "#define _GNU_SOURCE /* To get defns of NI_MAXSERV and NI_MAXHOST */\n" "#include Earpa/inet.hE\n" "#include Esys/socket.hE\n" "#include Enetdb.hE\n" "#include Eifaddrs.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" "#include Elinux/if_link.hE\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" "int main(int argc, char *argv[])\n" "{\n" " struct ifaddrs *ifaddr;\n" " int family, s;\n" " char host[NI_MAXHOST];\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" " if (getifaddrs(&ifaddr) == -1) {\n" " perror(\"getifaddrs\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" " /* Walk through linked list, maintaining head pointer so we\n" " can free list later. */\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" " for (struct ifaddrs *ifa = ifaddr; ifa != NULL;\n" " ifa = ifa-Eifa_next) {\n" " if (ifa-Eifa_addr == NULL)\n" " continue;\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid " family = ifa-Eifa_addr-Esa_family;\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" " /* Display interface name and family (including symbolic\n" " form of the latter for the common families). */\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" " printf(\"%-8s %s (%d)\\en\",\n" " ifa-Eifa_name,\n" " (family == AF_PACKET) ? \"AF_PACKET\" :\n" " (family == AF_INET) ? \"AF_INET\" :\n" " (family == AF_INET6) ? \"AF_INET6\" : \"???\",\n" " family);\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid " /* For an AF_INET* interface address, display the address. */\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" " if (family == AF_INET || family == AF_INET6) {\n" " s = getnameinfo(ifa-Eifa_addr,\n" " (family == AF_INET) ? sizeof(struct sockaddr_in) :\n" " sizeof(struct sockaddr_in6),\n" " host, NI_MAXHOST,\n" " NULL, 0, NI_NUMERICHOST);\n" " if (s != 0) {\n" " printf(\"getnameinfo() failed: %s\\en\", gai_strerror(s));\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid " printf(\"\\et\\etaddress: E%sE\\en\", host);\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" " } else if (family == AF_PACKET && ifa-Eifa_data != NULL) {\n" " struct rtnl_link_stats *stats = ifa-Eifa_data;\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" " printf(\"\\et\\ettx_packets = %10u; rx_packets = %10u\\en\"\n" " \"\\et\\ettx_bytes = %10u; rx_bytes = %10u\\en\",\n" " stats-Etx_packets, stats-Erx_packets,\n" " stats-Etx_bytes, stats-Erx_bytes);\n" " }\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm #, no-wrap msgid "" " freeifaddrs(ifaddr);\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: TH #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr ""