#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#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;
}
