20#ifndef FASTDDS_UTILS__IPLOCATOR_HPP
21#define FASTDDS_UTILS__IPLOCATOR_HPP
23#include <fastdds/rtps/common/Types.hpp>
24#include <fastdds/dds/log/Log.hpp>
54 const std::string& address,
61 const unsigned char* addr);
74 const std::string& ipv4);
84 const std::string& lan,
85 const std::string& wan,
86 const std::string& ipv4);
103 unsigned char* dest);
109 const unsigned char* addr);
126 const std::string& ipv6);
148 unsigned char* dest);
151 FASTDDS_EXPORTED_API
static bool ip(
153 const std::string&
ip);
190 const std::string& wan);
213 const std::string& lanId);
246 FASTDDS_EXPORTED_API
static bool isAny(
253 bool fullAddress =
false);
270 FASTDDS_EXPORTED_API
static std::pair<std::set<std::string>, std::set<std::string>>
resolveNameDNS(
271 const std::string& address_name);
275 const std::string& address);
278 const std::string& address);
294 const std::string& ipv6);
Class IPLocator, to provide helper functions to the IP based transports.
Definition IPLocator.hpp:42
static FASTDDS_EXPORTED_API bool isIPv4(const std::string &address)
Check whether a string contains an IPv4 format.
static FASTDDS_EXPORTED_API std::string toWanstring(const Locator_t &locator)
Retrieves a string representation of the locator's WAN address (as in RTCP protocol)
static FASTDDS_EXPORTED_API bool setIPv6(Locator_t &locator, const std::string &ipv6)
Sets locator's IPv6.
static FASTDDS_EXPORTED_API bool hasWan(const Locator_t &locator)
Checks if the locator has WAN address (as in RTCP protocol)
static FASTDDS_EXPORTED_API bool copyIPv4(const Locator_t &locator, unsigned char *dest)
Copies locator's IPv4.
static FASTDDS_EXPORTED_API bool setWan(Locator_t &locator, const std::string &wan)
Sets locator's WAN address (as in RTCP protocol)
static FASTDDS_EXPORTED_API bool isLocal(const Locator_t &locator)
Checks if a locator has local IP address.
static FASTDDS_EXPORTED_API const octet * getWan(const Locator_t &locator)
Gets locator's WAN address (as in RTCP protocol)
static FASTDDS_EXPORTED_API std::pair< std::set< std::string >, std::set< std::string > > resolveNameDNS(const std::string &address_name)
Resolve an address name by a DNS request and return the IP that this address references by a DNS serv...
static FASTDDS_EXPORTED_API bool compareAddress(const Locator_t &loc1, const Locator_t &loc2, bool fullAddress=false)
Checks if both locators has the same IP address.
static FASTDDS_EXPORTED_API uint16_t getLogicalPort(const Locator_t &locator)
Gets locator's logical port (as in RTCP protocol)
static FASTDDS_EXPORTED_API bool isAny(const Locator_t &locator)
Checks if a locator has any IP address.
static FASTDDS_EXPORTED_API bool hasIPv6(const Locator_t &locator)
Check if the locator has IPv6.
static bool IPv6isCorrect(const std::string &ipv6)
static FASTDDS_EXPORTED_API bool isIPv6(const std::string &address)
Check whether a string contains an IPv6 format.
static FASTDDS_EXPORTED_API const octet * getLanID(const Locator_t &locator)
Gets locator's LAN ID (as in RTCP protocol)
static FASTDDS_EXPORTED_API bool copyIPv6(const Locator_t &locator, unsigned char *dest)
Copies locator's IPv6.
static FASTDDS_EXPORTED_API bool setPhysicalPort(Locator_t &locator, uint16_t port)
Sets locator's physical port (as in RTCP protocol)
static FASTDDS_EXPORTED_API bool setIPv4(Locator_t &locator, const std::string &ipv4)
Sets locator's IPv4.
static FASTDDS_EXPORTED_API bool setIPv6(Locator_t &destlocator, const Locator_t &origlocator)
Copies locator's IPv6.
static FASTDDS_EXPORTED_API Locator_t WanToLanLocator(const Locator_t &locator)
This method is useful in the case of having a tcp client with an initial peer pointing to a WAN locat...
static bool isEmpty(const Locator_t &locator, uint16_t index)
static FASTDDS_EXPORTED_API bool isMulticast(const Locator_t &locator)
Checks if the locator has a multicast IP address.
static FASTDDS_EXPORTED_API bool setWan(Locator_t &locator, octet o1, octet o2, octet o3, octet o4)
Sets locator's WAN address (as in RTCP protocol)
static FASTDDS_EXPORTED_API bool ip(Locator_t &locator, const std::string &ip)
Sets locator's IP.
static FASTDDS_EXPORTED_API std::string ip_to_string(const Locator_t &locator)
Returns a string representation of the locator's IP.
static FASTDDS_EXPORTED_API uint16_t getPhysicalPort(const Locator_t &locator)
Gets locator's physical port (as in RTCP protocol)
static FASTDDS_EXPORTED_API bool setIPv6(Locator_t &locator, const unsigned char *addr)
Sets locator's IPv6.
static FASTDDS_EXPORTED_API Locator_t toPhysicalLocator(const Locator_t &locator)
Returns a new locator without logical port (as in RTCP protocol).
static FASTDDS_EXPORTED_API std::string toIPv6string(const Locator_t &locator)
Returns a string representation of the locator's IPv6 following RFC 5952 recommendation.
static FASTDDS_EXPORTED_API bool compareAddressAndPhysicalPort(const Locator_t &loc1, const Locator_t &loc2)
Checks if a both locators has the same IP address and physical port (as in RTCP protocol).
static FASTDDS_EXPORTED_API std::string toLanIDstring(const Locator_t &locator)
Retrieves a string representation of the locator's LAN ID (as in RTCP protocol)
static bool isEmpty(const Locator_t &locator)
static FASTDDS_EXPORTED_API bool setLogicalPort(Locator_t &locator, uint16_t port)
Sets locator's logical port (as in RTCP protocol)
static FASTDDS_EXPORTED_API bool setPortRTPS(Locator_t &locator, uint16_t port)
Sets locator's RTCP port. Physical for UDP and logical for TCP (as in RTCP protocol)
static FASTDDS_EXPORTED_API bool ip_equals_wan(const Locator_t &locator)
Checks if a locator WAN address and IP address are the same (as in RTCP protocol).
static FASTDDS_EXPORTED_API bool setIPv4(Locator_t &locator, const unsigned char *addr)
Sets locator's IPv4.
static FASTDDS_EXPORTED_API bool setIPv6(Locator_t &locator, uint16_t group0, uint16_t group1, uint16_t group2, uint16_t group3, uint16_t group4, uint16_t group5, uint16_t group6, uint16_t group7)
Sets locator's IPv6.
static FASTDDS_EXPORTED_API std::string to_string(const Locator_t &locator)
Returns a string representation of the given locator.
static FASTDDS_EXPORTED_API std::string toIPv4string(const Locator_t &locator)
Returns a string representation of the locator's IPv4.
static FASTDDS_EXPORTED_API bool hasIPv4(const Locator_t &locator)
Check if the locator has IPv4.
static FASTDDS_EXPORTED_API void createLocator(int32_t kindin, const std::string &address, uint32_t portin, Locator_t &locator)
Fills locator with the given parameters.
static FASTDDS_EXPORTED_API bool setLanID(Locator_t &locator, const std::string &lanId)
Sets locator's LAN ID (as in RTCP protocol)
static FASTDDS_EXPORTED_API const octet * getIPv6(const Locator_t &locator)
Retrieves locator's IPv6 as octet array.
static FASTDDS_EXPORTED_API bool setIPv4(Locator_t &locator, octet o1, octet o2, octet o3, octet o4)
Sets locator's IPv4.
static FASTDDS_EXPORTED_API bool setIPv4(Locator_t &destlocator, const Locator_t &origlocator)
Copies locator's IPv4.
static FASTDDS_EXPORTED_API bool setIPv4address(Locator_t &destlocator, const std::string &lan, const std::string &wan, const std::string &ipv4)
Copies locator's IPv4.
static FASTDDS_EXPORTED_API uint16_t getPortRTPS(Locator_t &locator)
Gets locator's RTCP port. Physical for UDP and logical for TCP (as in RTCP protocol)
static FASTDDS_EXPORTED_API const octet * getIPv4(const Locator_t &locator)
Retrieves locator's IPv4 as octet array.
Class Locator_t, uniquely identifies a communication channel for a particular transport.
Definition Locator.hpp:71
unsigned char octet
Definition Types.hpp:83