Bat+JScritp解决ADSL+希网DDNS的地址更新
话说这玩意是上次给同学家里机器写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的地址更新相关推荐
- fedora下如何使用希网DDNS
第一步:首先安装lynx,yum方式安装也可,在http://lynx.isc.org/release/下载安装也可,解压后,进入解压目录,分别运行./configuer和make install 第 ...
- 希网动态域名 客户端(系统服务)
希网动态域名开放更新协议,官方提供的客户端不支持 以服务方式更新IP, 所以写了个.NET的系统服务. 希望大家喜欢 把下面源码存为 cn99.cs 修改对应的帐号, 再用下面的命令行编译,安装为 ...
- 用apache反向代理解决单外网ip对应内网多个web主机的问题
用apache反向代理解决单外网ip对应内网多个web主机的问题 转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的. 来源地址:http://www.itshantou ...
- [转]用apache反向代理解决单外网ip对应内网多个web主机的问题
用apache反向代理解决单外网ip对应内网多个web主机的问题 转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的. 来源地址:http://www.itshantou ...
- 离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中)
离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中) 参考文章: (1)离线安装python第三方库的实用方法:解决公 ...
- *8.哈希冲突是什么?以及如何解决哈希冲突
哈希表:又叫散列表.是根据关键码值而直接进行访问的数据结构哈希表一个映射表,就是通过哈希函数算法,有的一个多对一的映射. 那哈希表有什么用呢? 很明显能加快查找速度.举个例子,你在查字典的时候,如果不 ...
- 解决网络通信中外网和内网之间的通信问题(NAT转换)
本文原址 http://www.cnblogs.com/lidabo/p/3828846.html 在网络编码中会发现程序在局域网中是可以适用的,但是在外网与内网之间和内网与内网之间就不可行. 问题就 ...
- python字典实现原理-哈希函数-解决哈希冲突方法
python字典实现原理-哈希函数-解决哈希冲突方法 参考文章: (1)python字典实现原理-哈希函数-解决哈希冲突方法 (2)https://www.cnblogs.com/guyannanfe ...
- 如何解决 Nginx 端口映射到外网后访问地址端口丢失的问题
推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...
最新文章
- 桌面打开图片时很慢,显示正在生成预览好几秒的解决办法
- SVM中的线性分类器
- codeblock生成64位dll_Pythonnet/clr : Unable to find assembly xxxx.dll
- windows服务器下的ftp server搭建
- *.sln和*.suo文件的作用
- 全球最大电子展2018再度起航,镁客网在香港带你深度探讨人工智能
- .net core 获取binary 文件_Linux操作系统文件目录
- 高德地图 android api 实现自动定位
- Android(第三方库汇总)
- iPhone不送充电器?工信部发话了
- Contrastive Learning
- 淘宝数据可视化大屏案例(Hadoop实验)
- app服务器指向dat文件,appdat-系统爱好者
- 10个全网最具创意的聊天机器人:漫威和联合国儿童基金会都在尝试使用聊天机器人
- 利用HTML5+CSS3+JS实现简单的钟表
- CCNA理论学习笔记整理(一)
- 2019全年营收净利润双超预期 微盟开启“飞轮模式”
- scala泛型上下界
- 必须掌握的Cookie知识点都在这里
- MTK6737平台的GPIO驱动例程(二)
热门文章
- Google Map heatmap
- 【jupyter报错】‘nb_conda_kernels.CondaKernelSpecManager‘ could not be imported
- 福特试验电子围栏限速
- Spring Cloud Gateway内置的断言和过滤器作用
- Stata常用命令集锦【计量经济系列(一)】
- 题海拾贝No.8|C语言笔试小题目集锦
- python 药房管理
- 如何安装Endnote以及如何在word2013中关联endnote
- PMP试题 | 每日一练,快速提分(十四)
- 富士通ERP解决方案举例