在Windows NT,2000或XP下如何动态设置IP地址、掩码,默认网关,并使之立即生效?谢谢!!

解决方案 »

  1.   

    动态改变/添加网络设置中的TCP/IP的DNS地址 
     例如,把 DNS Server的地址添加为192.0.0.1和192.1.1.0,可调用: 
    SetTCPIPDNSAddresses('192.0.0.1 192.1.1.0') ; 
    // 各地址之间用一个空格隔开 1. SetTCPIPDNSAddresses 定义如下: procedure SetTCPIPDNSAddresses( sIPs : string ); 
    begin 
    // 
    // if using Windows NT 
    // 
    SaveStringToRegistry_LOCAL_MACHINE( 
    'SYSTEM\CurrentControlSet' + 
    '\Services\Tcpip\Parameters', 
    'NameServer', 
    sIPs ); 
      

  2.   

    补充:SaveStringToRegistry_LOCAL_MACHINE 定义: uses Registry; procedure SaveStringToRegistry_LOCAL_MACHINE( 
    sKey, sItem, sVal : string ); 
    var 
    reg : TRegIniFile; 
    begin 
    reg := TRegIniFile.Create( '' ); 
    reg.RootKey := HKEY_LOCAL_MACHINE; 
    reg.WriteString( sKey, sItem, sVal + #0 ); 
    reg.Free; 
    end; 
      

  3.   

    转自hubdog:
    例如,把 DNS Server的地址添加为192.0.0.1和192.1.1.0,可调用:
    SetTCPIPDNSAddresses('192.0.0.1 192.1.1.0') ;
    // 各地址之间用一个空格隔开1. SetTCPIPDNSAddresses 定义如下:procedure SetTCPIPDNSAddresses( sIPs : string );
    begin
    //
    // if using Windows NT
    //
    SaveStringToRegistry_LOCAL_MACHINE(
    'SYSTEM\CurrentControlSet' +
    '\Services\Tcpip\Parameters',
    'NameServer',
    sIPs );//
    // if using Windows 95
    //
    SaveStringToRegistry_LOCAL_MACHINE(
    'SYSTEM\CurrentControlSet' +
    '\Services\VxD\MSTCP',
    'NameServer',
    sIPs );
    end;2. 其中 SaveStringToRegistry_LOCAL_MACHINE 定义:
    uses Registry;procedure SaveStringToRegistry_LOCAL_MACHINE(
    sKey, sItem, sVal : string );
    var
    reg : TRegIniFile;
    begin
    reg := TRegIniFile.Create( '' );
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.WriteString( sKey, sItem, sVal + #0 );
    reg.Free;
    end;
      

  4.   

    上面的资料我也看到过,但是只是修改DNS并且不能立即生效,只有再重新启动的时候有效。