7#ifndef INETADDRESSUTIL_H_
8#define INETADDRESSUTIL_H_
16#include <pv/byteBuffer.h>
34epicsShareFunc
int discoverInterfaces(IfaceNodeVector &list, SOCKET socket,
const osiSockAddr *pMatchAddr = 0);
69epicsShareFunc std::string inetAddressToString(
const osiSockAddr &addr,
70 bool displayPort =
true,
bool displayHex =
false);
76struct comp_osiSock_lt {
77 bool operator()(
const osiSockAddr& a,
const osiSockAddr& b)
const {
78 if(a.sa.sa_family<b.sa.sa_family)
return true;
79 if((a.sa.sa_family==b.sa.sa_family)&&(a.ia.sin_addr.s_addr
80 <b.ia.sin_addr.s_addr))
return true;
81 if((a.sa.sa_family==b.sa.sa_family)&&(a.ia.sin_addr.s_addr
82 ==b.ia.sin_addr.s_addr)&&(a.ia.sin_port
83 <b.ia.sin_port))
return true;
bool decodeAsIPv6Address(epics::pvData::ByteBuffer *buffer, osiSockAddr *address)
Decode IPv6 address (as IPv4 address).
void encodeAsIPv6Address(epics::pvData::ByteBuffer *buffer, const osiSockAddr *address)
Encode IPv4 address as IPv6 address.
bool isMulticastAddress(const osiSockAddr *address)
Check if an IPv4 address is a multicast address.
void getSocketAddressList(InetAddrVector &ret, const std::string &list, int defaultPort, const InetAddrVector *appendList=NULL)
Parse space delimited addresss[:port] string and populate array of InetSocketAddress.
Copyright - See the COPYRIGHT that is included with this distribution.