• Stars
    star
    13
  • Rank 1,512,713 (Top 30 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created over 5 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Header-only C++14 library for getting addresses associated with network interfaces without name lookups on Windows, macOS, Linux, and FreeBSD

NetIF

Get addresses associated with network interfaces on a system without using name lookups. Header-only, requires C++14.

Usage

Add the header file to the include path for your project. The main functions for getting interface addresses all return a vector of strings (std::vector<std::string>) with the typical human-readable representation of IP addresses (e.g. 127.0.0.1 for IPv4 and 2001:0db8:85a3:0000:0000:8a2e:0370:7334 for IPv6).

#include "gmlc/netif/NetIF.hpp"

auto addrs_ipv4 = gmlc::netif::getInterfaceAddressesV4(); // Get all IPv4 addresses
auto addrs_ipv6 = gmlc::netif::getInterfaceAddressesV6(); // Get all IPv6 addresses
auto addrs_all = gmlc::netif::getInterfaceAddressesAll(); // Get all addresses (IPv4 and IPv6)

CI Test Status

OS CPU Arch Status
FreeBSD x86_64 Build Status
Linux (Alpine) ARM/AArch64 Build Status
Linux (Ubuntu) x86_64 CI
macOS x86_64 CI
Windows 10 x86_64 CI

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. See Contributing for more details and Contributors for a list of the current and past contributors to this project.

Please make sure to update tests as appropriate.

Release

NetIF is distributed under the terms of the BSD-3 clause license. All new contributions must be made under this license. See LICENSE for more detail.

SPDX-License-Identifier: BSD-3-Clause

Portions of the code written by LLNL with release number LLNL-CODE-739319