Linux: 3322.org+lynx+crontab 实现ddns的自动刷新
来源:互联网 发布:彩票源码程序 编辑:程序博客网 时间:2024/03/29 13:34
现在的ddns实现个人网站是越来越流行了,不过我要的只是能够远程访问位于adsl拨号网背后加路由器的Debian服务器,大概电信的家庭用户大多是这种接入方式。电信的固定IP服务是没有能力享用的,同样的带宽就凭空多收好几倍的价钱,不是明摆着暴力抢劫吗,我可不想当这样的冤大头,所以只能自己动手解决了。
Google一下,蛮大堆的花生壳的资料,好吧咱也入乡随俗,申请一个免费的花生壳域名,免费ddns可用了,路由器上刚好有这个选项,再好不过了。本以为天下太平了,高高兴兴的用了没几天,新的问题出现了:俺的路由器是非认证路由器,所以被无情的屏蔽了,不但是高峰时期无法访问了,平时空闲的时候也不给解析,看来还是得想其他的辄儿,虽然花生壳的收费服务也不算贵,但这种屏蔽行为却让我很是厌恶,决定不从花生壳身上下功夫了。
国外的ddns域名服务很多了,路由器的ddns选项里边也带了几个,可惜都被电信运营商给无情的和谐了。
最后伟大的免费提供商出现在了我的视线,就是这个3322,不仅好用,而且可通过简单的http命令来手动刷新,这就给脚本以很大的方便,自动写脚本刷新可比依靠不可靠的路由器客户端靠谱多了。
由此即想到了伟大了控制台程序lynx,最早的浏览器之一了,在终端运行,而且很方便脚本调用。对付这种情况,构造一个基本的ddns刷新数据包也是非常方便的:
lynx -mime_header -auth=<user>:<password> "http://www.3322.org/dyndns/update?system=dyndns&hostname=<your registered dynamic domain>"
这里填写注册的用户名和密码,以及网站提供的免费域名,执行后,就会有相应消息,显示当前的公网IP注册成功了。
自动刷新的工作就好办多了,交给crontab和shell脚本去做正合适了:
cat update_ddns.sh
#!/bin/bash
ipaddr=`lynx -mime_header -auth=<user>:<password> "http://www.3322.org/dyndns/update?system=dyndns&hostname=<your registered dynamic domain>" | egrep "[0-9]+/.[0-9]+/.[0-9]+/.[0-9]+"|awk '{print $2}'`
date=`date "+%y-%m-%d %H:%M"`
echo $date $ipaddr
这里我把时间、IP地址 打印出来,便于后续分析查看。
接下来,install some crontab(编辑, crontab -e)
crontab -l
0,30 18-23 * * 1-5 /home/user1/bin/update_ddns.sh >> /home/user1/log/ddns.log
为了清晰的看到电信修改IP的频率,再加上一个脚本分析产生的log,仅将IP变化的情况过滤出来:
cat trim_ddns.sh
#!/bin/bash
cat /home/user1/log/ddns.log | awk '{ if (NF < 2) {print $0;} else if ($3 != lastip) { lastip=$3; print $0} }' | uniq > /home/user1/log/ip_update.log
最后,再来一个crontab吧,得到一个过滤后的ip地址更新信息:
0 0 * * 5 /home/user1/bin/trim_ddns.sh
我的IP地址信息如下:
============================
Date Time IP Addr
----------------------------
09-05-07 18:24 125.118.6.115
----------------------------
09-05-09 19:00 125.119.10.61
----------------------------
09-05-13 18:30 115.192.215.162
----------------------------
看来电信的IP更换频率大概是不到一个星期就刷一次了,因为我的路由器从来没关机过。
- Linux: 3322.org+lynx+crontab 实现ddns的自动刷新
- DDNS的实现
- DDNS 的工作原理及其在 Linux 上的实现
- DDNS 的工作原理及其在 Linux 上的实现
- DDNS 的工作原理及其在 Linux 上的实现
- 在ROS的PPPOE IP变的时候自动修改DNS记录,实现DDNS
- 网页自动刷新的实现
- 利用ddns实现apache的web服务
- Linux下DDNS客户端的使用
- Linux下DDNS客户端的使用
- Linux-lynx(textbrowser)
- linux 安装lynx
- Linux lynx命令
- linux 命令之lynx
- linux 命令行网页浏览器Lynx
- 【Linux】lynx快捷键
- 使用crontab实现自动运行
- crontab实现自动删除日志
- oracle的blob和clob字段的处理
- #define与typedef用法
- Java中的堆和栈
- 使用VC2005express,时,MFC遇到的问题
- 程序员
- Linux: 3322.org+lynx+crontab 实现ddns的自动刷新
- Linux下GCC编程四个过程(转)
- 值类型和引用类型的区别
- C#继承、覆盖和多态、抽象类
- Create Jffs2 for Linux Kernel 2.6
- C++类中的访问控制
- 客户化开发的功能主菜单丢失的问题。
- 三步学会Java Socket编程
- Linux系统信息查看命令大全