当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [原创]drcom客户端ip自动更新程序
帖子发表于 : 2007-06-26 13:31 

注册: 2007-05-31 17:53
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
本人所在学校上网使用drcom客户端,DHCP动态分配地址。从论坛上下载一个drcom的客户端,每次上网都得手动更改/etc/drcom.conf文件中的IP地址。很是麻烦我用KDEVELOP写了一个小程序,自动更改drcom.conf中的IP地址。上传上来大家分享一下,编译好的程序在附件里。可以再些一个bash脚本,每次运行就可以自动上网。欢迎提意见。
代码:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <fstream>
#include <string>
#include <iostream>
#include <cstdlib>
using namespace std;

bool openfile(string filename,string &Str)
{
   ifstream infile(filename.c_str());
   if(!infile)
   {
      cerr<<"Error:unable to open file '"<<filename<<"'"<<endl;
      return false;
   }
   string temp;
   while(infile>>temp)
   {
      Str+=temp;
      Str+='\n';
   }
   infile.close();
   return true;
}

string findip(string contents,const string &inString)
{
   string::size_type pos=inString.find(contents.c_str());
   if (pos>inString.size())
   {
      cerr<<"No '"<<contents<<"' in the file this file."<<endl;
      exit(-1);
   }
   while(inString[pos]!=':') ++pos;
   ++pos;
   string ip;
   while(inString[pos]!='\n')
   {
      ip+=inString[pos];
      ++pos;
   }
   return ip;
}

void replace(string &originally,string source,string target)
{
   string::size_type start=originally.find(source.c_str()),end=0;
   while(originally[start]!='=')
   {
      ++start;
   }
   ++start;
   end=start;
   while(originally[end]!='\n') ++end;
//   string::iterator tmp;
   originally.erase(start,end-start);
   originally.insert(start,target);

}

void writefile(string filename,string &contants)
{
   ofstream outfile(filename.c_str());
   outfile<<contants<<endl;
   outfile.close();
}

int main(int argc, char *argv[])
{
   string ipfile,ip,drcom;

   system("ifconfig> /tmp/temp_ip");
   if(!openfile("/tmp/temp_ip",ipfile)) return -1;
   ip=findip("地址:",ipfile);
   system("rm /tmp/temp_ip");

   if(!openfile("/etc/drcom.conf",drcom)) return -1;
   replace(drcom,"nic0=",ip);
   writefile("/etc/drcom.conf",drcom);
   cout<<"IP update successful."<<endl;

  return EXIT_SUCCESS;
}


附件:
update_ip.tar.gz [7.87 KiB]
被下载 31 次
页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译