话说这玩意是上次给同学家里机器写DDNS IP实时更新的服务程序的时候就想做的.

结果一懒就懒了半年没动囧...

我用的是希网的动态域名,它的好处是公开客户端的协议格式可以自己写客户端.上次给同

学做的服务的原理是在后台每隔10分钟就尝试去更新一次IP.但说实话我觉得这样效率很

差.因为ADSL连接成功后到下次重拨为止IP都是固定的.在这期间根本没更新的必要.

----那么只要在每次拨号后更新一次就ok了.

好在我平时都是用自己写的一个bat来管理ADSL的连接/断开(这个bat很方便:P如果宽带已

断开就会拨号,如果已连接就会断开宽带).

batCode:

@Echo Off Rasdial | find "已连接" > nul If Errorlevel 1 Goto dial :HungUp Echo 当前宽带状态:已连接 Echo 正在断开... Rasdial /D Goto End :dial Echo 当前宽带状态:已断开 Rasdial 宽带连接 *********** ****** :End pause

只要在dial一节加入对更新ip的程序的调用就ok了.

接下来就是写一个更新IP的程序了,我选用了js,调试修改起来都要方便的多.

ddns.js:

var usr = "***"; var pwd = "******"; //自己拥有的域名 var domains=new Array( "chrisak.3322.org" ); var http= new ActiveXObject("MSXML2.XMLHTTP"); function print (msg) { WScript.Echo (msg); } function write (msg) { WScript.StdOut.Write(msg); } //生成URL function createUpdateUrl (domain) { return "http://" + usr + ":" + pwd + "@members.3322.org/dyndns/update?system=dyndns&hostname=" + domain + "&wildcard=OFF&backmx=NO&offline=NO"; } //发送请求返回结果 function readUrl (url) { http.Open ("GET",url,false); http.Send(); return http.ResponseText; } function updateDns (domain) { print ("正在更新域名" + domain); var url = createUpdateUrl(domain); var svrret = readUrl(url); var ipstart = svrret.indexOf (' '); var retcode = svrret.substr (0,ipstart); //判断更新的结果 if (retcode=="good" || retcode=="nochg"){ print ("IP已更新至 " + svrret.substr (++ipstart)); } else { print ("域名IP更新失败:("); } } for (var i in domains) { updateDns(domains[i]); } write("所有域名更新完成");

接下来修改bat:

@Echo Off Rasdial | find "已连接" > nul If Errorlevel 1 Goto dial :HungUp Echo 当前宽带状态:已连接 Echo 正在断开... Rasdial /D Goto End :dial Echo 当前宽带状态:已断开 Rasdial 宽带连接 ************* ****** cscript ddns.js :End pause

这样每次一旦我用这个bat拨号完成后,就会自动为我更新我的ip,再也不用随时跑一个客户端了:)

Bat+JScritp解决ADSL+希网DDNS的地址更新相关推荐

  1. fedora下如何使用希网DDNS

    第一步:首先安装lynx,yum方式安装也可,在http://lynx.isc.org/release/下载安装也可,解压后,进入解压目录,分别运行./configuer和make install 第 ...

  2. 希网动态域名 客户端(系统服务)

    希网动态域名开放更新协议,官方提供的客户端不支持 以服务方式更新IP, 所以写了个.NET的系统服务.  希望大家喜欢 把下面源码存为  cn99.cs 修改对应的帐号, 再用下面的命令行编译,安装为 ...

  3. 用apache反向代理解决单外网ip对应内网多个web主机的问题

    用apache反向代理解决单外网ip对应内网多个web主机的问题 转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的. 来源地址:http://www.itshantou ...

  4. [转]用apache反向代理解决单外网ip对应内网多个web主机的问题

    用apache反向代理解决单外网ip对应内网多个web主机的问题 转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的. 来源地址:http://www.itshantou ...

  5. 离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中)

    离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中) 参考文章: (1)离线安装python第三方库的实用方法:解决公 ...

  6. *8.哈希冲突是什么?以及如何解决哈希冲突

    哈希表:又叫散列表.是根据关键码值而直接进行访问的数据结构哈希表一个映射表,就是通过哈希函数算法,有的一个多对一的映射. 那哈希表有什么用呢? 很明显能加快查找速度.举个例子,你在查字典的时候,如果不 ...

  7. 解决网络通信中外网和内网之间的通信问题(NAT转换)

    本文原址 http://www.cnblogs.com/lidabo/p/3828846.html 在网络编码中会发现程序在局域网中是可以适用的,但是在外网与内网之间和内网与内网之间就不可行. 问题就 ...

  8. python字典实现原理-哈希函数-解决哈希冲突方法

    python字典实现原理-哈希函数-解决哈希冲突方法 参考文章: (1)python字典实现原理-哈希函数-解决哈希冲突方法 (2)https://www.cnblogs.com/guyannanfe ...

  9. 如何解决 Nginx 端口映射到外网后访问地址端口丢失的问题

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

最新文章

  1. 桌面打开图片时很慢,显示正在生成预览好几秒的解决办法
  2. SVM中的线性分类器
  3. codeblock生成64位dll_Pythonnet/clr : Unable to find assembly xxxx.dll
  4. windows服务器下的ftp server搭建
  5. *.sln和*.suo文件的作用
  6. 全球最大电子展2018再度起航,镁客网在香港带你深度探讨人工智能
  7. .net core 获取binary 文件_Linux操作系统文件目录
  8. 高德地图 android api 实现自动定位
  9. Android(第三方库汇总)
  10. iPhone不送充电器?工信部发话了
  11. Contrastive Learning
  12. 淘宝数据可视化大屏案例(Hadoop实验)
  13. app服务器指向dat文件,appdat-系统爱好者
  14. 10个全网最具创意的聊天机器人:漫威和联合国儿童基金会都在尝试使用聊天机器人
  15. 利用HTML5+CSS3+JS实现简单的钟表
  16. CCNA理论学习笔记整理(一)
  17. 2019全年营收净利润双超预期 微盟开启“飞轮模式”
  18. scala泛型上下界
  19. 必须掌握的Cookie知识点都在这里
  20. MTK6737平台的GPIO驱动例程(二)

热门文章

  1. Google Map heatmap
  2. 【jupyter报错】‘nb_conda_kernels.CondaKernelSpecManager‘ could not be imported
  3. 福特试验电子围栏限速
  4. Spring Cloud Gateway内置的断言和过滤器作用
  5. Stata常用命令集锦【计量经济系列(一)】
  6. 题海拾贝No.8|C语言笔试小题目集锦
  7. python 药房管理
  8. 如何安装Endnote以及如何在word2013中关联endnote
  9. PMP试题 | 每日一练,快速提分(十四)
  10. 富士通ERP解决方案举例