SOS,如何设置本机dns的两个ip地址?(50分)

  • 主题发起人 主题发起人 majbb
  • 开始时间 开始时间
M

majbb

Unregistered / Unconfirmed
GUEST, unregistred user!
找了好多地方都没有一个比较好的方法!

不使用netsh命令,因为有的电脑有限制,不能执行这个命令!

还有什么方法吗? 下面这个软件是用delphi编写的,这个软件可以

但是不知道他是用什么方法实现的,那位知道啊,或者有源码,在下感激不尽!
软件图片连接:
http://bbs.2ccc.com/topic.asp?topicid=247922
 
现在的大富翁好凄凉啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
从旧帖子里抄来的:



pegasus (1998-12-11 20:10:00)
呵呵, 这可真不是什么高难题!
不过如果只有4分, 还不如设成0分, 贡献一把, :)
我已经在一道题目里答过了(给出如何获得IP地址和子网掩码,改为设置应该不难):

>如果我不知道罔卡型号NE2000可能不正确(我用的不是NT),
>有没有什么其它方法?
所谓本地网络号本来就是和Network Adapter Bind在一起的,
>有没有什么其它方法
没有标准的方法. 因为这不是Win API的功能, TCP/IP资料看了
也没用, 因为网络编程接口之类的东西都是对高层应用设计的,
象这样底层的问题(网卡以及协议配置)是由系统级的程序实现
的, 不同的系统, 实现起来有很大不同.

在NT上, 先获得网络设备驱动程序的名称:
sNetCardRegKey := '/SOFTWARE/Microsoft/Windows NT/CurrentVersion/NetworkCards/1'; 1 或者其他能在这个地方枚举到的子键
regRootKey.RootKey := HKEY_LOCAL_MACHINE;
regRootKey.OpenKeyReadOnly(SNetCardRegKey);
sNetCardDriverName := regRootKey.ReadString('ServiceName');

然后:
sServiceRegKey := '/SYSTEM/CurrentControlSet/Services/';
sTCPIPRegKey := sServiceRegKey + sNetCardDriverName + '/Parameters/Tcpip';
在'IPAddress'中获得这个设备的所有IP地址
regRootKey.ReadBinaryData('IPAddress', cIPAddressArray, 255);
在'SubNetMask'中获得IP地址对应的子网掩码
regRootKey.ReadBinaryData('SubNetMask', cNetMaskArray, 255);

在Win95/98中:
获得设备名称的办法:
sNetCardRegKey := '/Enum/Network/MSTCP/0001/'; 0001 或者其他能在这个地方枚举到的子键
sServiceRegKey := '/SYSTEM/CurrentControlSet/Services/Class/';

regRootKey.RootKey := HKEY_LOCAL_MACHINE;
regRootKey.OpenKeyReadOnly(SNetCardRegKey);
sNetCardDriverName := regRootKey.ReadString('Driver');

然后:
sTCPIPRegKey := sServiceRegKey + sNetCardDriverName;
regRootKey.OpenKeyReadOnly(sTCPIPRegKey);

最后获得IP地址和子网掩码:
sIPAddress := regRootKey.ReadString('IPAddress');
sNetMask := regRootKey.ReadString('IPMask');
Win95不支持一个设备对应多个地址
 
自己已经解决了,靠天靠人还不如靠自己,多动脑子,多思考,现在的富翁论坛,唉.......................................
还是谢谢hs-kill兄台,分全给你了!
 
这分......让我接着这么难受呢,难道楼主不是用改注册表的方法?
 
后退
顶部