E2SAR 0.2.0
Loading...
Searching...
No Matches
e2sarNetUtil.hpp
1#ifndef E2SARDPNETUTILHPP
2#define E2SARDPNETUTILHPP
3
4#include <boost/asio.hpp>
5#include <boost/asio/ip/udp.hpp>
6#include <boost/tuple/tuple.hpp>
7#include <boost/tuple/tuple_io.hpp>
8
9#include "e2sarError.hpp"
10
11using namespace boost::asio;
12
13namespace e2sar
14{
15 /*
16 Network utilities class with static functions
17 */
18 class NetUtil
19 {
20 public:
26 static size_t getMTU(const std::string &interfaceName) noexcept;
30 static result<std::string> getHostName() noexcept;
31
35 static result<std::vector<ip::address>> getInterfaceIPs(const std::string &interfaceName, bool v6=false) noexcept;
36
37#ifdef NETLINK_CAPABLE
43 static inline result<boost::tuple<std::string, u_int16_t>> getInterfaceAndMTU(const std::string &ipaddr)
44 {
45 return getInterfaceAndMTU(ip::make_address(ipaddr));
46 }
52 static result<boost::tuple<std::string, u_int16_t>> getInterfaceAndMTU(const ip::address &addr);
53
54#endif
55 };
56}
57#endif
Definition e2sarNetUtil.hpp:19
static size_t getMTU(const std::string &interfaceName) noexcept
Definition e2sarNetUtil.cpp:18
static result< std::vector< ip::address > > getInterfaceIPs(const std::string &interfaceName, bool v6=false) noexcept
Definition e2sarNetUtil.cpp:45
static result< std::string > getHostName() noexcept
Definition e2sarNetUtil.cpp:33
Definition e2sar.hpp:11