From Torrid Matamata, 10 Years ago, written in Plain Text.
Embed
  1. #ifdef INET6
  2.         cp = (u_char *)numb->s6_addr;
  3.         if (cp[0]==0 && cp[1]==0 && cp[2]==0 && cp[3]==0 && cp[4]==0 &&
  4.             cp[5]==0 && cp[6]==0 && cp[7]==0 && cp[8]==0 && cp[9]==0 &&
  5.             ((cp[10]==0 && cp[11]==0) || (cp[10]==0xff && cp[11]==0xff)))
  6.             {
  7.                 (void)sprintf(ipbuf, "%u.%u.%u.%u.in-addr.arpa.",
  8.                               (u_int)(cp[15]), (u_int)(cp[14]),
  9.                               (u_int)(cp[13]), (u_int)(cp[12]));
  10.             }
  11.         else
  12.             {
  13.                 (void)sprintf(ipbuf, "%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.ip6.int.",
  14.                 (u_int)(cp[15]&0xf), (u_int)(cp[15]>>4),
  15.                 (u_int)(cp[14]&0xf), (u_int)(cp[14]>>4),
  16.                 (u_int)(cp[13]&0xf), (u_int)(cp[13]>>4),
  17.                 (u_int)(cp[12]&0xf), (u_int)(cp[12]>>4),
  18.                 (u_int)(cp[11]&0xf), (u_int)(cp[11]>>4),
  19.                 (u_int)(cp[10]&0xf), (u_int)(cp[10]>>4),
  20.                 (u_int)(cp[9]&0xf), (u_int)(cp[9]>>4),
  21.                 (u_int)(cp[8]&0xf), (u_int)(cp[8]>>4),
  22.                 (u_int)(cp[7]&0xf), (u_int)(cp[7]>>4),
  23.                 (u_int)(cp[6]&0xf), (u_int)(cp[6]>>4),
  24.                 (u_int)(cp[5]&0xf), (u_int)(cp[5]>>4),
  25.                 (u_int)(cp[4]&0xf), (u_int)(cp[4]>>4),
  26.                 (u_int)(cp[3]&0xf), (u_int)(cp[3]>>4),
  27.                 (u_int)(cp[2]&0xf), (u_int)(cp[2]>>4),
  28.                 (u_int)(cp[1]&0xf), (u_int)(cp[1]>>4),
  29.                 (u_int)(cp[0]&0xf), (u_int)(cp[0]>>4));
  30.             }
  31. #else
  32.         cp = (u_char *)&numb->S_ADDR;
  33.         (void) sprintf(ipbuf, "%u.%u.%u.%u.in-addr.arpa.", (u_int) (cp[3]), (u_int) (cp[2]), (u_int) (cp[1]),
  34.                        (u_int) (cp[0]));
  35. #endif
  36.