用Delphi编制IP地址转换器

时间:2010-01-31 10:00:54  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:是很遗憾这些软件都不是免费软件,只能试用一段时间。  因此,笔者经过尝试,调试出一个非常简单、易行的方法,供大家参考使用。  首先看一下原理:  Window的netsh命令通过创建和调用记录网络配置的文本文件即可修改网络配置。主要包括一下两个命令:Netsh interface dump > 相对路径 netcfg1.txt  这条命令可...
  正文:现在学校和公司的朋友们大都遇到过这种情况吧:计算机需要经常在互联网局域网之间转换,每次转换除了换网线外,还需要修改网络配置(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,temphotoshop/ target=_blank class=infotextkey>pstr : 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;

用Delphi编制IP地址转换器》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/12678.html


关键字:

关于《用Delphi编制IP地址转换器》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td