1 #ifndef __JSYSTEM__JNETWORK__
2 #define __JSYSTEM__JNETWORK__
34 class JCompareEndian {
40 endian(ntohs(0x1234) == 0x1234)
49 bool operator()()
const
79 const size_t MAXIMUM_LENGTH = 256;
80 char buffer[MAXIMUM_LENGTH];
82 if (gethostname(buffer, MAXIMUM_LENGTH) == 0)
83 return std::string(buffer);
102 hostent* p = gethostbyaddr(&buffer,
sizeof(in_addr), AF_INET);
105 return std::string(p->h_name);
121 std::string buffer = host_name;
123 if (buffer ==
"" || buffer ==
"localhost") {
127 const hostent* hp = gethostbyname(buffer.c_str());
130 memcpy((
char *) &ip, hp->h_addr,
sizeof(
int));
156 std::ostringstream os;
159 os << ((ip >> 24) & 0xFF) <<
'.'
160 << ((ip >> 16) & 0xFF) <<
'.'
161 << ((ip >> 8) & 0xFF) <<
'.'
162 << ((ip >> 0) & 0xFF);
164 os << ((ip >> 0) & 0xFF) <<
'.'
165 << ((ip >> 8) & 0xFF) <<
'.'
166 << ((ip >> 16) & 0xFF) <<
'.'
167 << ((ip >> 24) & 0xFF);
193 return (
unsigned short) (ip & 0x0000FFFF);
195 return (
unsigned short) (((ip & 0xFF000000) >> 24) |
196 ((ip & 0x00FF0000) >> 8) );
220 const size_t MAXIMUM_LENGTH = 256;
221 char buffer[MAXIMUM_LENGTH];
225 struct ifaddrs *p = NULL;
227 if (getifaddrs(&p) == 0) {
229 for ( ; p != NULL; p = p->ifa_next) {
231 if (p->ifa_addr != NULL) {
233 if (p->ifa_addr->sa_family == AF_INET ||
234 p->ifa_addr->sa_family == AF_INET6) {
236 if (getnameinfo( p->ifa_addr,
237 (p->ifa_addr->sa_family == AF_INET) ?
sizeof(
struct sockaddr_in) :
sizeof(
struct sockaddr_in6),
238 buffer, MAXIMUM_LENGTH,
239 NULL, 0, NI_NUMERICHOST) == 0) {
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Exception for system call.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary classes and methods for operating system calls.
static const JCompareEndian compareEndian
Function object operator.
int getIPnumber()
Get IP number.
std::string getIPaddress()
Get IP address (decimal-dot notation).
unsigned short getSubaddress()
Get host identifier within network.
std::vector< std::string > getListOfIPaddresses()
Get list of IP address (decimal-dot notation).
std::string getHostname(const int ip)
Get host name.