哪位高手了解 动态域名解析 服务器和客户端的原理?我象开发一个象dns2go那样的系统!请问开发原理是什么?怎样实现动态更新域名服务器的解析数据?用什么开发工具实现?先多谢了!

解决方案 »

  1.   

    普通的域名解析工作的时候内部的域名和IP地址是固定的(手工修改),当向它查询的时候,它根据自己的内部列表查到需要解析的域名,再查到IP,向客户返回IP。
    普通域名解析的列表:
    域名         IP
    www.csdn.net X.X.X.X动态的域名解析系统估计是这样工作的:域名IP列表
    域名         IP       启动标志 客户名称  客户确认(密码)
    www.csdn.net x.x.x.x  yes      csdn5678  csdn1234当需要动态域名解析的客户机启动后,客户端程序获得自己的IP值(由isp分配的),然后告知服务器端(当然有名称和密码验证等过程),服务器端就修改列表,把“启动标志”改为 yes, 同时修改 ip 值内容。其余的工作就象普通 DNS 服务器一样了。
    当客户下线的时候,客户端程序向服务器发送消息,服务器把“启动标志”改为 no, 这样的话,有其它人查询时,就返回特定的信息即可。关于 DNS 解析的详细问题,可以参考 bind 的源代码或linux中的代码。
    bind 的网站地址 http://www.isc.org/
      

  2.   

    问题是,在操作系统中怎样实现动态配置某个域名的解析数据并且让它生效呢?这才是技术关键所在,其实获取客户端的IP数据很容易,只要做个c/s结构的软件就可以了。关键是要让DNS能动态更新解析数据,把从客户端获得的IP地址重新映射到其对应的域名上,让别人能访问到客户的那台机子。
      

  3.   

    对,按dns2go的原理,应该是客户端有一个程序,把客户本机的ip传给服务器。服务器本身是个DNS服务器。当得到客户的ip后,修改其本身的DNS数据库,这样,当其它的DNS服务器需要访问这个域名时,就可以访问到正确的Ip了。
    Ip的更新,则可以使用一个定时器,或是仅仅在程序开始运行时传递。
    象Dns2Go,它自己肯定也是.Dns2go的根域服务器。
    大致思路应该是这样。难点是:
    1.Dns数据库的结构实现(可查看相应的资料)
    2.Dns服务器的实现(可使用现成的服务器,如2000自带的Dns,而只负责修改数据库)