手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

利用Delphi编制IP地址转换器

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
  现在学校和公司的朋友们大都遇到过这种情况吧:计算机需要经常在互联网和局域网之间转换,每次转换除了换网线外,还需要修改网络配置(IP地址、网关、DNS等等),相当麻烦。如何能在一个窗口中一步实现呢?有些公司提供了软件如:IPChanger、EasyProxy等等,但是很遗憾这些软件都不是免费软件,只能试用一段时间。

  因此,笔者经过尝试,调试出一个非常简单、易行的方法,供大家参考使用。

  首先看一下原理:

  Window的netsh命令通过创建和调用记录网络配置的文本文件即可修改网络配置。主要包括一下两个命令:

Netsh interface dump > 相对路径\ netcfg1.txt

  这条命令可以将计算机现有的网络配置保存在netcfg1.txt文件中。

Netsh -f netcfg1.txt

  这条命令即可将netcfg1.txt文件中保存的网络配置应用到计算机中。

  基于以上的两条命令,笔者利用Delphi6.0编制小程序,将它进一步完善。运行结果如下图所示:



  如上图所示,小软件主要功能分成两部分:网络设置和网络替换。因为一个计算机绝大多数是在两个网络中互换,所以本程序只实现了两个网络的互换,更多的网络间互换道理是相同的。

  网络设置"互联网"和"局域网"两个Button的单击事件是将左侧网络设置区的IP地址、网关、DNS等信息记录到文本中。其中遇到的两个主要困难是IP地址的录入时的出错情况处理和保存文本文件。   代码如下:

procedure TForm1.BitBtn2Click(Sender: TObject); //"局域网"按钮的单击事件
begin
 FileAppendProc1();
 RadioButton2.Checked:=true;
end;

procedure TForm1.FileAppendProc1(); //保存文件的函数
 var NetFile : TextFile;
 NetFilename : string;
 FileAppend,tempStr : string;
begin
 NetFilename :='netcfg2.txt';
 FileAppend :=S5 MaskEdit1.Text S1 MaskEdit2.Text S2 MaskEdit3.Text S3 S4;
 //MessageDlg('This is commend' FileAppend,mtInformation,[mbOK],0);
 AssignFile(Netfile,'net.txt'); //net.txt文件要放在应用程序的同一目录中
 Reset(NetFile);
 begin
 try
  Memo1.Lines.Text:='';
  while not Eof(NetFile) do
  begin
   Readln(NetFile,tempStr);
   Memo1.Lines.Add(tempStr) ;
  end;
  finally
 begin
  CloseFile(NetFile);
 end;
end;
AssignFile(Netfile,NetFilename);
Rewrite(NetFile);
try
 Writeln(NetFile,'');
 finally
 CloseFile(NetFile);
end;
 Memo1.Lines.Add(FileAppend);
 Memo1.Lines.SaveToFile(NetFilename);
end;
end;

procedure TForm1.MaskEdit1Exit(Sender: TObject); //IP地址输入出错处理
 var ip1,ip2,ip3,ip4: Integer;
begin
 if (copy(MaskEdit1.Text,1,3)=' ') or (copy(MaskEdit1.Text,5,3)=' ') or  (copy(MaskEdit1.Text,9,3)=' ') or (copy(MaskEdit1.Text,13,3)=' ') then
 begin
  showmessage('请注意,不能有空域值') ;
  MaskEdit1.SetFocus;
 end;
 if (copy(MaskEdit1.Text,1,3)<>' ') and (copy(MaskEdit1.Text,5,3)<>' ') and   (copy(MaskEdit1.Text,9,3)<>' ') and (copy(MaskEdit1.Text,13,3)<>' ') then
 begin
  ip1:=strtoint(trim(copy(MaskEdit1.Text,1,3)));
  ip2:=strtoint(trim(copy(MaskEdit1.Text,5,3)));
  ip3:=strtoint(trim(copy(MaskEdit1.Text,9,3)));
  ip4:=strtoint(trim(copy(MaskEdit1.Text,13,3)));
  if (ip1<0) or (ip1>254) or (ip2<0) or (ip2>254) or(ip3<0) or (ip3>254) or (ip4<0) or (ip4>254) then
  begin
   showmessage('您的输入不正确,请重新输入!');
   MaskEdit1.SetFocus;
  end;
 end;
end;

  右侧网络替换功能的编制相对简单些,通过两个radiobutton控件选择要使用哪个网络,然后点击"确定"按钮即可。

procedure TForm1.Button1Click(Sender: TObject); //"确定"按钮的单击事件
begin
  if RadioButton1.Checked then winexec('netsh -f netcfg1.txt',sw_normal) ;
  if RadioButton2.Checked then winexec('netsh -f netcfg2.txt',sw_normal) ;
end;

  这样,功能就实现了,这个小软件简单易用,在我周围的同学中已经广为流传,希望大家能够从中学习到简单易行的网络配置方法。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS