在linux下实现动态IP的域名自动指向

中国Linux论坛首页 技术论坛| 文章荟萃| 藏经阁| CMPP计划| Mirror计划| 在线调查| 软件仓库| 关于本站|中国Linux论坛--文章荟萃文章荟萃首页 | 分类文章 | 搜寻文

中国Linux论坛首页 技术论坛| 文章荟萃| 藏经阁| CMPP计划| Mirror计划| 在线调查| 软件仓库| 关于本站|



中国Linux论坛--文章荟萃

文章荟萃首页 | 分类文章 | 搜寻文章 | 我的文章 | 在线用户

文章荟萃
>> 最新文章 此话题阅读次数: 1704
上个话题上一篇 观看所有的话题索引 下个话题下一篇 *平坦模式 树状模式,一封一封读树状模式

加到“个人收藏夹” | 打印
文章标题 在linux下实现动态IP的域名自动指向 by 甘杰汉
回应这篇文章评注
张贴者: David.系统 (站长)
张贴日期 09/04/02 12:26 PM



广西钦州市文峰路100号 甘杰汉

在Internet上,用户的域名和IP地址是一一对应的。但以虚拟拨号的方式上网,则产生了动态IP地址。这对于没有太多钱申请域名的电脑爱好者造成了麻烦。前一段日子,由于笔者所在地区的ADSL改为虚拟拨号方式,这麻烦也困扰了笔者好一阵。经多次调试,终于实现了在Linux下动态IP地址的域名自动指向。现将其记录下来,与大家共享:

  之前,笔者在http://www.deerfield.com/download/dns2go/linux/index.htm为自设的服务器申请了免费域名,把dns2go放在/etc/rc.d/rc.local里,开机即可启动固定的免费域名。但ADSL改为虚拟拨号的方式后,没有固定IP地址,启动dns2go很麻烦,先用ifconfig指令查出ppp0得到的IP,再在/etc/dns2go.conf下修改IP,然后才能启动dns2go。每次的启动都要使用手工操作,很不方便。在没有人的干预情况下,不能自动启动它。写了个C程序来解决问题,例中所有程序都假设安装在/usr/local/bin/下,编写个shell程序来调用C程序,目录含有xnbh(shell程序),trans(C程序编译后执行程序),outfile(中间临时文件),pppoe.txt(中间文件),dns2go.conf(典型的配置文件)






xnbh的shell程序如下:

adsl-start#启动adls的虚拟拨号程序,

ifconfig ppp0 |grep -v "Link">/usr/local/bin/pppoe.txt#在目录中产生pppoe.txt文件

/usr/local/bin/trans#调用C程序提取文件pppoe.txt中的IP值,然后替换dns2go.conf中的IP值,产生中间文件outfile

cp /etc/dns2go.conf /etc/dns2go.confold #备份原来的dns2go.conf文件

cp /usr/local/bin/outfile /etc/dns2go.conf #替换后的dns2go.conf文件

nohup /usr/local/bin/dns2go >/var/tmp/dns2go.log 2>&1 &#启动固定域名







在xnbh执行第二句后产生的pppoe.txt如下:

inet addr:218.65.217.109 P-t-P:172.0.0.1 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1

RX packets:26 errors:0 dropped:0 overruns:0 frame:0

TX packets:27 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:3

RX bytes:1400 (1.3 Kb) TX bytes:1358 (1.3 Kb)







trans.c原程序如下

标签: