Chinaunix

标题: IP地址问题 [打印本页]

作者: liusn2000    时间: 2004-08-04 09:27
标题: IP地址问题
有时候看到 50331647 这样的IP表示方法,请问他和xxx.xxx.xxx.xxx这样的IP怎么转换?
作者: ☆蓝色流星☆    时间: 2004-08-04 11:04
标题: IP地址问题
不太可能吧,从哪里看到的
作者: javamud    时间: 2004-08-04 11:11
标题: IP地址问题
将十进制转换成点分二进制的数,只是格式不同了而已。而且好使。
作者: liusn2000    时间: 2004-08-04 11:17
标题: IP地址问题
javamud怎么转换的,.是怎么处理的?
作者: netzh    时间: 2004-08-04 12:12
标题: IP地址问题
[quote]原帖由 "javamud"]将十进制转换成点分二进制的数,只是格式不同了而已。而且好使。[/quote 发表:


请问有没有关于这个算法的公式或软件
作者: JohnBull    时间: 2004-08-04 13:00
标题: IP地址问题
try this:
x.x.x.x ->; xxxxxxxx

  1. #include <sys/socket.h>;
  2. #include <netinet/in.h>;
  3. #include <arpa/inet.h>;
  4. #include <stdio.h>;

  5. main(int argc, char *argv[])
  6. {
  7.         char buffer[16];

  8.         if (argc<2) {
  9.                 fgets(buffer,16,stdin);
  10.         } else if (argc>;2) {
  11.                 fprintf(stderr,"Usage: %s xxx.xxx.xxx.xxx\n",argv[0]);
  12.         } else {
  13.                 strncpy(buffer,argv[1],16);
  14.         }
  15.         printf("%u\n",ntohl(inet_addr(buffer)));
  16. }
复制代码


xxxxxxxx ->; x.x.x.x

  1. #include <stdio.h>;

  2. union convert {
  3.         unsigned int i;
  4.         unsigned char c[4];
  5. };

  6. main(int argc, char *argv[])
  7. {
  8.         char buffer[16];
  9.         union convert ip;

  10.         if (argc<2) {
  11.                 fgets(buffer,16,stdin);
  12.         } else if (argc>;2) {
  13.                 fprintf(stderr,"Usage: %s n\n",argv[0]);
  14.         } else {
  15.                 strncpy(buffer,argv[1],16);
  16.         }
  17.         sscanf(buffer,"%u",&ip.i);
  18.         printf("%d.%d.%d.%d\n",ip.c[3],ip.c[2],ip.c[1],ip.c[0]);
  19. }
复制代码

作者: liusn2000    时间: 2004-08-04 13:55
标题: IP地址问题
拜谢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2