如何编程获取DNS地址?

binbin 2003-11-18 07:40:09
要求能获取当前连接的DNS地址,如果是拨号上网则获取ISP提供的DNS地址,如果是局域网上网则获取DHCP服务器提供的或本机固定设置的DNS,总之获得当前机器正在使用能正常连接的DNS设置.
分不够可以再加.
...全文
469 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
COKING 2003-11-22
  • 打赏
  • 举报
回复
动态的在注册表里也有的!是OS自己写进去的!
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Linkage 得到InterFace

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces 对应上面的InterFace

在DhcpNameServer里
binbin 2003-11-21
  • 打赏
  • 举报
回复
还是读写注册表?
达不到我的要求啊.要求能在DHCP,拨号等动态IP/DNS的网络环境下正常工作.
HUANG_JH 2003-11-21
  • 打赏
  • 举报
回复
动态改变/添加网络设置中的 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 );


//

// 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;
叶子哟 2003-11-21
  • 打赏
  • 举报
回复
找找dns编程的书看看,不熟悉
binbin 2003-11-21
  • 打赏
  • 举报
回复
可惜msdn上没有这个函数的帮助,unix下是有的,难道winsock没有相应的实现?
annkie 2003-11-21
  • 打赏
  • 举报
回复
没事乱搜了一下,找到这个函数 getaddrinfo 不晓得你用了没有了?
看看msdn的帮助试试看。
binbin 2003-11-21
  • 打赏
  • 举报
回复
这么多天来提前一次都不行!!!
"你提前的太频繁了"???
顶!!!
binbin 2003-11-19
  • 打赏
  • 举报
回复
动态的呢?注册表里也会有吗?
warton 2003-11-19
  • 打赏
  • 举报
回复
我只知道方面注册表里有记录,看过这方面的文章
binbin 2003-11-18
  • 打赏
  • 举报
回复
winsock函数gethostbyname本身就应该会用到DNS,它是如何做的呢???
binbin 2003-11-18
  • 打赏
  • 举报
回复
人呢?

1,317

社区成员

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

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