North American Network Operators Group

Date Prev | Date Next | Date Index | Thread Index | Author Index | Historical

Re: interger to I P address

  • From: Robert Kisteleki
  • Date: Wed Aug 27 13:07:30 2008

Colin Alston wrote:
On 2008/08/27 05:22 PM Dave Israel wrote:

Normally, I don't participate in this sort of thing, but I'm a sucker for a "there's more than one way to do it" challenge.

Aww come on, C gets way more "fun" than that ;)


#define _u8 unsigned char
#define _u32 unsigned long

int main(void) {
    _u32 ipn = 1089055123;
    _u8 ipa[3];
    _u8 oct = 0;


for (oct=0; oct <4; oct++){ ipa[oct] = (char)( (ipn & (0xFF000000 >> (8*oct))) >> (8*(3-oct)) ); }

printf("%d.%d.%d.%d\n", ipa[0], ipa[1], ipa[2], ipa[3]);

    return 0;
}

Actually, who needs loops for that?


#include <stdio.h>

int main()
{
	unsigned i = 1089055123;
	printf("%d.%d.%d.%d\n",
(unsigned char)(((char*)&i)[3]),
(unsigned char)(((char*)&i)[2]),
(unsigned char)(((char*)&i)[1]),
(unsigned char)(((char*)&i)[0])
);
	return 0;
}


Robert