博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IP地址的读取 LINUX C
阅读量:7200 次
发布时间:2019-06-29

本文共 2823 字,大约阅读时间需要 9 分钟。

#include 
#include
FILE *fp = NULL; #define NETWORK_FILE "/etc/network/interfaces" static char* getNetworkInfo(char *maches) {
char szBuf[64]; char *szNetwork=NULL; int i = 0; if((fp=fopen(NETWORK_FILE, "r"))==NULL) //判断文件是否为空 {
printf( "Can 't open file!\n"); return 0; } while(fgets(szBuf,128,fp)) //从文件开关开始向下读,把读到的内容放到szBuf中 { if(strstr(szBuf,maches) != NULL) //找到maches在文件中第一次出现的位置。。如address {
for(i =0;i < strlen(szBuf);i++) { if(isdigit(*(szBuf+i))) //从szBuf字符串中找出数字。 {
szNetwork = (char*)malloc(strlen(szBuf)); //为szNetwork分配内存 strcpy(szNetwork,szBuf+i); szNetwork[strlen(szNetwork)-1] = '\0'; fclose(fp); return szNetwork; } } }else continue; } fclose(fp); return szNetwork; } int main() {
char *IPaddress; char *netmask; char *gateway; IPaddress = getNetworkInfo("address"); //找到 LINUX 配制文件中的 interfaces 文件 匹配IP 。然后读出来 netmask = getNetworkInfo("netmask"); //子网掩码 gateway = getNetworkInfo("gateway"); //默认网关 printf("IPaddress:%s\n",IPaddress); printf("netmask:%s\n",netmask); printf("gateway:%s\n",gateway); } /***************************** * interfaces 里的内容 * * * *****************************/ /***************************** iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.139 netmask 255.255.255.0 gateway 192.168.1.1 *****************************/
 
static void writeAddr(char addressbuf[255])                 //IP 写入 {
FILE* fp=NULL; int i,Lid = -1; char szBuf[128]; char szTemp[128]; char szTmp[20][256]; memset(szTmp,0,sizeof(szTmp)); memset(szBuf,0,sizeof(szBuf)); if((fp=fopen(NETWORK_FILE, "r+"))==NULL) { printf( "setIP Can 't open file!\n"); return; } while(fgets(szBuf,256,fp)) {
Lid++; if('#' != *szBuf) {
if(strstr(szBuf,"gateway") != NULL) {
memset(szTemp,0,sizeof(szTemp)); snprintf(szTemp, sizeof(szTemp), "\tgateway %s\n",addressbuf); strcpy(szTmp[Lid],szTemp); }else strcpy(szTmp[Lid],szBuf); }else{
strcpy(szTmp[Lid],szBuf); } } fclose(fp); printf("%s\n",szTmp[6]); if((fp=fopen(NETWORK_FILE, "w"))==NULL) { printf( "writeIP Can 't open file!\n"); return; }else{
for(i = 0;i <=Lid;i++) fputs(szTmp[i],fp); fclose(fp); } return; }
 

转载地址:http://undum.baihongyu.com/

你可能感兴趣的文章
MYSQL数据库常用命令集合
查看>>
linux查看系统版本、位数,CPU信息;
查看>>
maven学习笔记(1)--什么是Maven
查看>>
vsphere4.1启动到vsd-mout报错
查看>>
第六周作业
查看>>
jquery选择器空格与大于号、加号与波浪号的区别
查看>>
自动布局(autoLayout)代码演练2
查看>>
Mysql清理二进制日志的技巧
查看>>
查看服务器在线用户数量专业工具——Query User
查看>>
SQL Server 2012 内存计数器的变化
查看>>
三、索引优化(4)索引碎片
查看>>
20141216 广州MVP线下聚会
查看>>
spring 开启异步支持
查看>>
理解MySQL——索引与优化
查看>>
华为-OSPF协议基本配置
查看>>
js中,如何判断一个json对象是否为空
查看>>
主机改名
查看>>
git clone 远程分支
查看>>
Rancher:一个开源的企业级全栈化容器部署及管理平台
查看>>
linux网络配置命令之ifconfig、ip和route
查看>>