#include #include #include #ifndef INADDR_NONE #define INADDR_NONE 0xffffffff /* -1 return */ #endif /* INADDR_NONE */ #define SWAP(a, b, tmp) tmp=a; a=b; b=tmp void swap_endian(char* x, int size) { char tmp; switch(size) { case 2: SWAP(x[0], x[1], tmp); break; case 4: SWAP(x[0], x[3], tmp); SWAP(x[1], x[2], tmp); break; } } int main(int argc, char** argv) { int i; unsigned int addr; int little_endian; little_endian = 1; if(*(char *)&little_endian != 1) little_endian = 0; for(i = 1; i < argc; i++) { addr = inet_addr(argv[i]); if(addr == INADDR_NONE && strcmp(argv[i], "255.255.255.255") != 0) fprintf(stderr, "Invalid argument: %s\n", argv[i]); else { if(little_endian) swap_endian((char *)&addr, sizeof(addr)); printf("%s %u\n", argv[i], addr); } } return 0; }