diff --git a/include/utils.h b/include/utils.h index 18c80dc..46dc30b 100644 --- a/include/utils.h +++ b/include/utils.h @@ -129,6 +129,21 @@ namespace Tins { */ HWAddress<6> resolve_hwaddr(const NetworkInterface &iface, IPv4Address ip, PacketSender &sender); + + /** + * \brief Resolves the hardware address for a given ip. + * + * If the address can't be resolved, a std::runtime_error + * exception is thrown. + * + * This method sends and receives the packet through + * PacketSender::default_interface. + * + * \param ip The ip to resolve, in integer format. + * \param sender The sender to use to send and receive the ARP requests. + * \return HWAddress<6> containing the resolved hardware address. + */ + HWAddress<6> resolve_hwaddr(IPv4Address ip, PacketSender &sender); /** \brief List all network interfaces. * diff --git a/src/utils.cpp b/src/utils.cpp index ce6fd60..7712d98 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -117,6 +117,10 @@ HWAddress<6> resolve_hwaddr(const NetworkInterface &iface, IPv4Address ip, Packe throw std::runtime_error("Could not resolve hardware address"); } +HWAddress<6> resolve_hwaddr(IPv4Address ip, PacketSender &sender) { + return resolve_hwaddr(sender.default_interface(), ip, sender); +} + bool gateway_from_ip(IPv4Address ip, IPv4Address &gw_addr) { typedef std::vector entries_type; entries_type entries;