LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1272|回复: 13

请教如何通过shell来获取adsl的动态IP

[复制链接]
发表于 2004-7-11 16:01:26 | 显示全部楼层 |阅读模式
网络环境是这样的:adsl+router(vigor)+lan,自己这台slackware是在lan中的,因为adsl的ip地址过段时间就会变,所以现在我想在自己这台机器上运行一个 shell来取得adsl的IP。我可以通过telnet登录进去以后,用sys iface这个roter提供的命令显示adsl的IP地址,这个shell应该如何实现?
发表于 2004-7-11 16:12:14 | 显示全部楼层
/sbin/adsl-status这个命令可以显示出IP地址
 楼主| 发表于 2004-7-11 16:15:52 | 显示全部楼层
不好意思,可能是我没有表达清楚,adsl不是接在我这台机器上的,而是通过router来自动拨号的
发表于 2004-7-11 22:47:15 | 显示全部楼层
windows可以用netstat看到

root: ~ # traceroute 202.116.128.143
traceroute to 202.116.128.143 (202.116.128.143), 30 hops max, 38 byte packets
1  * * *
Icmp checksum is wrong
2  61.144.51.1 (61.144.51.1)  44.708 msIcmp checksum is wrong
  42.769 msIcmp checksum is wrong
  42.867 ms
Icmp checksum is wrong
3  61.144.9.81 (61.144.9.81)  42.042 msIcmp checksum is wrong
  42.331 msIcmp checksum is wrong
  40.858 ms
Icmp checksum is wrong
4  61.144.9.17 (61.144.9.17)  42.555 msIcmp checksum is wrong
  42.349 ms

traceroute我的etc/resolv.conf里的dns可以得出

你看上面的2里,61.144.51.1是我的adsl的ip

还有一个办法是登录你的modem web管理界面,既然你都设置了自动拨号不可能在modem的管理选项首页看不到公网上的ip地址 !

还有另外几个办法,晚些我再贴出来
 楼主| 发表于 2004-7-12 08:55:40 | 显示全部楼层
登录到web管理界面是可以看到我的公网IP,我的意思是不想通过这种方式,而是直接用shell来实现.
 楼主| 发表于 2004-7-12 12:55:40 | 显示全部楼层
看了一下expect好象可以自动登录到期telnet,但是不会用,不知道如何让它执行后返回需要的这个值,有哪位能帮帮忙吗?
发表于 2004-7-12 12:59:55 | 显示全部楼层
expect的介绍论坛里有,可以参考:
http://www.linuxsir.cn/bbs/showt ... mp;highlight=expect
 楼主| 发表于 2004-7-12 15:30:53 | 显示全部楼层
不好意思,看了以后还是一头雾水,看来真是没办法了
发表于 2004-7-12 16:52:19 | 显示全部楼层
最初由 losska 发表
看了一下expect好象可以自动登录到期telnet,但是不会用,不知道如何让它执行后返回需要的这个值,有哪位能帮帮忙吗?



帮你在cu问了一下,方法是用telnet别人的邮件smtp服务器
输出helo localhost得到返回的自己ip,但我还回不来,可能邮件地址不对
  1.   
  2. MAIL_SERVER=smtp.isp.net
  3. NEW_IP=$((sleep 2;echo helo localhost; sleep 2; echo quit) \
  4. | telnet $MAIL_SERVER 25 2>&1 \
  5. | awk -F '[\]\[]' '/^250/{print $2}')
  6. echo $NEW_IP
复制代码
发表于 2004-7-12 17:00:34 | 显示全部楼层
感谢Snoopy兄热心指点! :thank :thank:thank :thank
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表