您现在的位置:中国下载站学院中心网络编程Delphi教程Delphi开发技巧 → 文章列表

利用Delphi编制IP地址转换器

作者:佚名  来源:不详  发布时间:2007-4-13 19:10:30   

减小字体 增大字体

 
 

  现在学校和公司的朋友们大都遇到过这种情况吧:计算机需要经常在互联网和局域网之间转换,每次转换除了换网线外,还需要修改网络配置(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控件选择要使用哪个网络,然后点击"确定"按钮即可。

[责任编辑:cndownzcom]

  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;

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

[责任编辑:cndownzcom]

[上一页][1][2]

在百度中搜索更多利用Delphi编制IP地址转换器相关网页 转贴于:中国下载站

  • 上一篇文章:Delphi实现窗体控件自由摆布
  • 下一篇文章:用Indy组件开发Socket应用程序
  • 阅读统计:[]
  • 中国下载站】【设为主页】【收藏本页】【打印本文】【回到顶部】【关闭此页

    相关文章
    文章评论(评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码


    设为首页 - 关于我们 - 广告服务 - 网站地图 - 加入收藏 - 网站声明 - 网站帮助 - 友情链接

    • Copyright (C) 2006-2008 www.cndownz.com All Rights Reserved.
      中国下载站 版权所有. 粤ICP备05141802号. 对本站有任何建议、意见或投诉,请来信:cndownzcom@yahoo.com.cn.
      喜欢中国下载站(cndownz.com),请把中国下载站(cndownz.com)告诉你QQ上的5位好友,多谢支持!