如何用Dephi编程来更改网络设置?(200分)

  • 主题发起人 主题发起人 qingfei
  • 开始时间 开始时间
Q

qingfei

Unregistered / Unconfirmed
GUEST, unregistred user!
先说说我的情况,
我的一台电脑,在局域网内部(以下间称内网),
但又想通过双绞线接入Internet(以下简称外网),
根据我这里的实际情况,内网和外网是要物理隔离的。
我准备是上内网时,用内网的双绞线接入,上外网时,用外网的双绞线接入
但是,内网和外网的网段是不一样的,所以IP地址也不一样,比如内网是192.168.1.x,
而外网的网段是10.x.x.x,并且外网还要配置网关和DNS服务器.
虽然我每次手动改动网络设置后重启可以达到要求,但那样太麻烦。

我的问题是,能不能用Delphi编个程序来根据当前状态来自动设置网络属性,
比如现在是内网,我想上外网了,我运行这个程序,自动把网络设置改变为外网的
(包括IP地址,网关,DNS服务器名称和IP等),改完后,给出一个提示框提示要
重新启动(当然如果不重启更好,不过我想做不到),重新启动后,拔下内网的双绞线,
插上外网的双绞线即可。
(外网切换到内网的原理同上)

各位大虾,这个程序怎么写,给个思路我!
谢谢了!
 
把 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;

 
真心只说了改DNS设置,
如何改IP地址和网关呢?
请大虾们援手!
 
大致方法有两种,一、通过API,资料不太好找 ^_^ 二、改注册表,我正在找!
 
看NETSH,可以使用批处理来做,直接在桌面建一个关于这个的快捷方式,不需要编程的。
 
你只有一块网卡吗?
 
我觉得你想通过这样的方法实现在两个不同的网之间切换并不是什么好的方式.
从你描述的情况看,首先你是一块网卡,然后你每次除了改配置,还要换网线.
还不如直接增加一块网卡,同时连接到两个网上.这样就可以一下子少很多问题.
 
如果用两块网卡,把内外网都插上双绞线
那内外网不就相通了吗?(至少物理上是相通的)
就达不到物理隔离的要求了!
所以只能用一块网卡!

另:
hikehilter的方法是怎样的,能不能说详细点?
 
如果你装的系统是Win2000,这个问题就很好解决了。
安装两块网卡,分别设置内外网的IP等,需要进入哪个网络时就把这个网卡启用,
把另一个禁用。既能达到物理隔离的要求,还不需要重启。
 
to:流云飘雪
怎样用程序启用和禁用网卡?
 
流云飘雪说的也达不到物理隔离的要求,
物理隔离是要求物理上,电路上的隔离!

怎么说跑题了!
那个程序,大虾们快帮我!
 
网卡上,设定双IP,不就可以了吗?
内网用不到DNS,gateway 等。也没关系的。
我以前试过应该可以的呀。
win2000 下,一个网卡双IP。带网关DNS,
你再换换网线就可以了
 
物理隔离还不简单,反正你都要换线的,用哪个网的时候就把另一条线拔了就是了。
 
找到一个程序了!
MultiNetWork Manager

http://www.globesoft.com/的产品

完全符合我的要求,再WIN2000和XP下甚至不需要重启!
谢谢大家了!
其实我只要大家提示一下的!但是大家没有提出好的建议(真心找的资料很好,不过不全)
希望有兴趣的能继续完善一下!
 
后退
顶部