diff --git a/include/tins/network_interface.h b/include/tins/network_interface.h index 625f7f3..d69a2af 100644 --- a/include/tins/network_interface.h +++ b/include/tins/network_interface.h @@ -144,6 +144,12 @@ public: operator bool() const { return iface_id != 0; } + + /** + * \brief Indicates whether this is a loopback device. + * @return true iff this is a loopback device. + */ + bool is_loopback() const; /** * \brief Compares this interface for equality. diff --git a/src/network_interface.cpp b/src/network_interface.cpp index af0388d..c68b449 100644 --- a/src/network_interface.cpp +++ b/src/network_interface.cpp @@ -215,6 +215,10 @@ NetworkInterface::Info NetworkInterface::addresses() const { return info; } +bool NetworkInterface::is_loopback() const { + return addresses().ip_addr.is_loopback(); +} + NetworkInterface::id_type NetworkInterface::resolve_index(const char *name) { #ifndef WIN32 id_type id = if_nametoindex(name);