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) {