方法一:直接一条Linux shell命令就可以修改,立即生效,但是只是暂时的。
方法二:直接修改网卡配置文件,就是长久的。
改好文件后,记得重启一下网卡,这样才能生效。
方法三:用C语言实现上面方法二的操作。
/*jupiter*///数组可以直接放想要修改的值 //比如char IP[20]={0}; //char IP[20]="192.168.0.157";char netmask[20]={0};//char netmask[20]="255.255.255.0";char gateway[20]={0};void setip(char *buffer,char *netbuf,char *gatebuf){char * FILE_NAME = "/etc/network/interfaces";FILE * file_fd;//int len = 0;file_fd = fopen(FILE_NAME,"r+");if(file_fd == NULL){perror("errno");}//跳过开头的172个字节fseek(file_fd,172,SEEK_CUR);fwrite(buffer,strlen(buffer),1,file_fd);//printf("offset1=%d\n",ftell(file_fd)); //可以打印出来看当前文件位置标识符的值fseek(file_fd,10,SEEK_CUR);fwrite(netbuf,strlen(netbuf),1,file_fd);//printf("offset2=%d\n",ftell(file_fd));fseek(file_fd,10,SEEK_CUR);fwrite(gatebuf,strlen(gatebuf),1,file_fd);//printf("offset3=%d\n",ftell(file_fd));fclose(file_fd);}int main(){ setip(IP,netmask,gateway);system("/etc/init.d/networking restart"); //调用linux的shell命令重启网卡//直接用字符串的不用下面几句,如果IP等数据是后续自己通过别的方式填的,就要注意是否需要给字符串加结束符,保证二次修改IP不会出现问题。IP[0]='\0'; netmask[0]='\0';gateway[0]='\0';}