ifaddrs4u is a universal, platform-independent tool for obtaining information about network interfaces (adapters)
and their hardware, IPv4, and IPv6 addresses and properties and configuration flags without knowing the details
of getifaddrs
, GetAdaptersAddresses
, or ioctl
, etc.
The name uses a common Java library idiom of the library purpose followed by "4" (an English homonym of "for")
followed by the language (normally "j", but "net" is also popular for C#), e.g. log4j, neo4j, log4net, etc. In
this case, the "u" means "universal," but you can also think of it as "you." "ifaddrs" refers to the fact that
this library primarily wraps the Unix/Linux function getifaddrs
and its struct ifaddrs
(on
Windows, it wraps GetAdaptersAddresses
/ PIP_ADAPTER_ADDRESSES
). See here (or here) for
more information on these platform-specific libraries.
Contents
This project contains the following language-specific libraries (and more may be added in the future):
This is the core library upon which all the other language-specific libraries depend. It's based on C++17
and can be used directly, if desired, as either a static library (.a
/ .lib
) or a shared/dynamic
library (.so
/ .dylib
/ .dll
). If used as a shared library, you must also load a
C++17 or newer standard library. For specific information about building and using this library, see
ifaddrs4cpp/README.rst.
This is a Java library that makes use of a combination of standard JDK classes and JNI wrappers around
ifaddrs4cpp
. It is designed to be API-similar to ifaddrs4cpp
, but there are some necessary
differences to meet Java rules, requirements, and best practices. For specific information about building and
using this library, see ifaddrs4j/README.rst.
This is an incomplete work in progress. More information soon.
This is a Pyton library that majes use of a combination of standard Python classes and Python native wrappers
around ifaddrs4cpp
. It is designed to be API-similar to ifaddrs4cpp
, but there are some necessary
differences to meet Python rules, requirements, and best practices. For specific information about building
and using this library, see ifaddrs4py/README.rst.
This entire project and all of it language-specific libraries are governed by the Apache License, Version 2.0.