|
|
比如说192.168.0.2---192.168.0.6应该是5个数,可是用下边的程序计算机的得数就很奇怪。
$ ./a.out 192.168.0.2 192.168.0.6
192.168.0.2 is right IP format
192.168.0.6 is right IP format
192.168.0.6(100706496)-192.168.0.2(33597632)=67108864
- #include <stdio.h>
- #include <arpa/inet.h>
- int main(int argc,char **argv[])
- {
- struct in_addr addrptr1;
- struct in_addr addrptr2;
- if(inet_aton(argv[1],&addrptr1))
- printf("%s is right IP format\n",argv[1]);
- else
- {
- printf("%s is wrong IP format\n",argv[1]);
- return(-1);
- }
- if(inet_aton(argv[2],&addrptr2))
- printf("%s is right IP format\n",argv[2]);
- else
- {
- printf("%s is wrong IP format\n",argv[2]);
- return(-1);
- }
- printf("%s(%d)-%s(%d)=%d\n",argv[2],addrptr2.s_addr,argv[1],addrptr1.s_addr,addrptr2.s_addr-addrptr1.s_addr);
- exit(0);
- }
复制代码 |
|