Chinaunix首页 | 论坛 | 博客
  • 博客访问: 90798
  • 博文数量: 22
  • 博客积分: 486
  • 博客等级: 下士
  • 技术积分: 262
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-07 19:26
文章分类

全部博文(22)

文章存档

2012年(22)

我的朋友

分类: C/C++

2012-03-21 16:31:06


点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <string.h>

  3. FILE *fp = NULL;
  4. #define NETWORK_FILE "/etc/network/interfaces"

  5. static char* getNetworkInfo(char *maches)
  6. {
  7.     char szBuf[64];
  8.     char *szNetwork=NULL;
  9.     int i = 0;
  10.     if((fp=fopen(NETWORK_FILE, "r"))==NULL) //判断文件是否为空
  11.     {
  12.         printf( "Can 't open file!\n");
  13.         return 0;
  14.     }
  15.     while(fgets(szBuf,128,fp)) //从文件开关开始向下读,把读到的内容放到szBuf中
  16.     {
  17.         if(strstr(szBuf,maches) != NULL) //找到maches在文件中第一次出现的位置。。如address
  18.         {
  19.             for(i =0;i < strlen(szBuf);i++)
  20.          {
  21.                 if(isdigit(*(szBuf+i))) //从szBuf字符串中找出数字。
  22.                 {
  23.                     szNetwork = (char*)malloc(strlen(szBuf)); //为szNetwork分配内存
  24.                     strcpy(szNetwork,szBuf+i);
  25.                     szNetwork[strlen(szNetwork)-1] = '\0';
  26.                     fclose(fp);
  27.                     return szNetwork;
  28.                 }
  29.             }
  30.         }else
  31.             continue;
  32.     }
  33.     fclose(fp);
  34.     return szNetwork;
  35. }

  36. int main()
  37. {
  38.     char *IPaddress;
  39.     char *netmask;
  40.     char *gateway;
  41.     IPaddress = getNetworkInfo("address"); //找到 LINUX 配制文件中的 interfaces 文件 匹配IP 。然后读出来
  42.     netmask = getNetworkInfo("netmask"); //子网掩码
  43.     gateway = getNetworkInfo("gateway"); //默认网关
  44.     printf("IPaddress:%s\n",IPaddress);
  45.     printf("netmask:%s\n",netmask);
  46.     printf("gateway:%s\n",gateway);
  47. }

  48. /*****************************
  49.  * interfaces 里的内容 *
  50.  * *
  51. *****************************/
  52. /*****************************
  53. iface lo inet loopback
  54. auto eth3
  55. iface eth3 inet static
  56.         address 192.168.1.139
  57.         netmask 255.255.255.0
  58.         gateway 192.168.1.1
  59. *****************************/

阅读(602) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:C 判断IP地址的合法性

给主人留下些什么吧!~~