如何编程实现更改本机的IP地址和网关等网络属性?

netying 2003-07-17 10:13:46
是在WIN2K中
...全文
427 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
fang007 2003-08-09
  • 打赏
  • 举报
回复
我在Windows2000服务器版和专业版下都通过了,这种方法肯定是可以的,我的程序现在运行的很好,要注意的是连接名一定要对(空格都要打对),我的程序为了通用,连接名是在注册表里读取的(做实验时到网络属性里用重命名的方法拷贝最好)!!
asimpleman 2003-08-07
  • 打赏
  • 举报
回复
gz
netying 2003-08-07
  • 打赏
  • 举报
回复
你是在什么系统下面试的?
fang007 2003-08-06
  • 打赏
  • 举报
回复
应该是象这样吧:
AnsiString C = "netsh interface ip set address name = \"本地连接\" source = static addr = 192.168.0.1 mask = 255.255.255.0 gateway = 192.168.0.1 gwmetric = 1 ";
WinExec(C.c_str(),SW_HIDE);

如要更改DNS或WINS地址可将字符串C变为:
netsh interface ip set dns name = \"本地连接\" source = static addr = 192.168.0.1
或:
netsh interface ip set wins name = \"本地连接\" source = static addr = 192.168.0.1

也可以先生成一个文本文件Tem.txt内容如下:
pushd interface ip
set address name = "本地连接" source = static addr = 192.168.0.1 mask = 255.255.255.0
set address name = "本地连接" gateway = 192.168.0.1 gwmetric = 1
set dns name = "本地连接" source = static addr = 192.168.0.1
set wins name = "本地连接" source = static addr = 192.168.0.1
popd

然后在程序里执行:
AnsiString C = "netsh -f Tmp.txt";
WinExec(C.c_str(),SW_HIDE);
如果Temp.txt不在当前目录得修改命令行加上路径!

还有就是连接名可以到注册表:HKEY_LOCAL_MACHINESYSTEM\ControlSet001\Control\Network
\{4D36E972-E325-11CE-BFC1-08002BE10318}\ 读取!
以上程序在Windows 2000任何版本下都可用!

一年前在做一个机房网络自动配置软件时就用这种方法做成功的!
在Windows 98中直接修改注册表就可以了!

刚来这里以后希望大家多多帮忙啊!!
fang007 2003-08-06
  • 打赏
  • 举报
回复
不会呀,我这儿可以的呀!而且我刚刚还试过的!
注意一定要把连接名写对才行的,最好到网络属性里把连接名直接拷贝过来(用重命命)!你再试试吧!
netying 2003-08-06
  • 打赏
  • 举报
回复
楼上的方法用过,就是不成功啊
总是说是无效的连接
shadowstar 2003-08-06
  • 打赏
  • 举报
回复
这个问题我以前也问过,没有一个好的解决办法。
理论上是可以的,但没人知道用什么方法。只能通过改注册表,重新启动实现。
lianghao2 2003-08-05
  • 打赏
  • 举报
回复
ding..
netying 2003-07-28
  • 打赏
  • 举报
回复
up 到底
asimpleman 2003-07-27
  • 打赏
  • 举报
回复
gz
lianghao2 2003-07-25
  • 打赏
  • 举报
回复
严重关注。
netying 2003-07-25
  • 打赏
  • 举报
回复
难道就解决不了?
netying 2003-07-24
  • 打赏
  • 举报
回复
改用PostMessage也是不行,程序虽然不死,但是还是没有生效
zihan 2003-07-23
  • 打赏
  • 举报
回复
修改了注册表过后好像用这个就可以不用重新启动了SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);

netying 2003-07-23
  • 打赏
  • 举报
回复
呵呵,我用了上边的语句,可是程序好象就死掉了
netying 2003-07-22
  • 打赏
  • 举报
回复
最后一招修改注册表,可是修改完后,注册表确实变了,但是本地连接的属性中IP没了,空了~~
netying 2003-07-22
  • 打赏
  • 举报
回复
我的还是不行呀,我把“本地连接”这个名字改成英文也是不行,
就是说是指定了无效的端口
china_bills 2003-07-21
  • 打赏
  • 举报
回复
我在专业版的win2000(bcb5)下调试成功,代码如下:
AnsiString strParam ="interface ip set address \"本地连接\" static 10.65.176.199 255.255.255.0 10.65.176.251 1";
ShellExecute( Handle,"open", "netsh",strParam.c_str(),NULL,SW_SHOW);
china_bills 2003-07-21
  • 打赏
  • 举报
回复
我在win2000(pro)下调试成功了,代码如下:
AnsiString strParam ="interface ip set address \"本地连接\" static 10.65.176.199 255.255.255.0 10.65.176.251 1";
ShellExecute( Handle,"open", "netsh",strParam.c_str(),NULL,SW_SHOW);
netying 2003-07-21
  • 打赏
  • 举报
回复
那真奇怪了,这个命令执行可能需要什么条件?
加载更多回复(25)

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧