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.