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->sa_family == AF_INET ||
232 p->ifa_addr->sa_family == AF_INET6) {
234 if (getnameinfo( p->ifa_addr,
235 (p->ifa_addr->sa_family == AF_INET) ?
sizeof(
struct sockaddr_in) :
sizeof(
struct sockaddr_in6),
236 buffer, MAXIMUM_LENGTH,
237 NULL, 0, NI_NUMERICHOST) == 0) {