#include #include #define IPLEN 3+1+3+1+3+1+3 void num2ip(int num, char *buf) { int s1,s2,s3,s4; s4 = (num & 0x000000ff); s3 = (num & 0x0000ff00) >> 8; s2 = (num & 0x00ff0000) >> 16; s1 = (num & 0xff000000) >> 24; sprintf(buf, "%d.%d.%d.%d", s1, s2, s3, s4); } int load_file(const char* filename) { FILE* fp = fopen(filename, "r"); char buf[512+1]; if(!fp) { printf("%s: file not found\n", filename); return -1; } while(fgets(buf, sizeof buf - 1, fp) ) { char* num = strtok(buf, " "); num = strtok(NULL, " "); if(num) { char ip[IPLEN+1]; num2ip(atoi(num), ip); printf("%s\n", ip); } } fclose(fp); return 0; } int main(int argc, char** argv) { if(argc < 2) { printf("Usage: %s number\n", argv[0]); return -1; } int num = atoi(argv[1]); if(num) { char ip[IPLEN+1]; num2ip(num, ip); printf("%s\n", ip); } else return load_file(argv[1]); return 0; }