利用dns查询获取我的公网地址
利用dns查询获取我的公网地址
获取自己的公网地址的方法很多,我这个也是不得已而为之。
目的无非就是当adsl的电脑重新拨号后,获得新的地址,这个地址我能够知道。
以前的路由器有这个发送syslog的选项,就是可以定时发送syslog出来,可以在这里看,但是要配置邮箱,而且syslog的信息也不是都是我要的。
还有就是用curl这样的工具,来访问提供公网地址查询的api,获取返回地址,再发送出来。但是我不想折腾smtp服务在自己的电脑上。也懒得写脚本。
刚好有自己的dns服务器。那好办了。
设个定时任务,让adsl的计算机,每隔4个小时,来query一个奇怪的我的不存在的子域名,然后从dns的query日志里面去tail 最后一个query这个奇怪域名的客户端的ip地址,再通过mail发给我不就好了。
然后就是这样的就完成了。
#!/bin/bash
cd /var/log/named/
cat named-query.log |grep dwoejaldjfla.mydomain.com |gawk '{print $1,$2,$5}' |tail -1 | xargs echo | mail -v -s 你的公网地址 myemailbox@mydomain1.com
在crontab中加入这个script,定期运行,然后就能在我设定的邮箱收到邮件了。