#include<stdio.h> #include<stdlib.h> #include<string.h> unsigned long my_inet_addr(char *ptr); int main(int argc,char **argv) { char str[16]; printf("please input the IP address:"); fgets(str,16,stdin); if(!strcmp(str,"255.255.255.255")) printf("%d\n",-1); else printf("%lu\n",my_inet_addr(str)); return 0; } unsigned long my_inet_addr(char *ptr) { int a[4],i=0; unsigned long num; char *p1=ptr,*p2,*p3; while(*p1!='\0' && i<4 ) { p2=strstr(p1,"."); if(i!=3) { p3=p2+1; *p2='\0'; } a[i]=atoi(p1); if(a[i]<0 || a[i]>255) { printf("Invalid IP address!\n"); exit(1); } p1=p3; i++; } num=a[0]*256*256*256+a[1]*256*256+a[2]*256+a[3]; return num; }