浏览 3144 次
精华帖 (0) :: 良好帖 (6) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-04
=begin 一个 Ubuntu Linux 下自动拨号获取铁通独立 IP 的脚本 作者:oldrev <oldrev@gmail.com> 授权: Public Domain =end require 'socket' # 获取本机 IP 代码来自: # http://www.iteye.com/topic/160284 # bits/ioctls.h SIOCGIFADDR = 0x8915 # get PA address def get_ip_address(iface) begin sock = UDPSocket.new buf = [iface,""].pack('a16h16') sock.ioctl(SIOCGIFADDR, buf); sock.close buf[20..24] rescue nil end end def getip get_ip_address('ppp0') #通常 ADSL 连接是 ppp0 end def format_ip ip if ip != nil then ip.unpack("CCCC").join(".") end end def recall puts "正在断开...." system 'poff dsl-provider' sleep 1 puts "正在拨号...." system 'pon dsl-provider' end def needs_recall(ip) ip == nil || ip[0] <= 10 #内网 ip 通常是 10.*.*.* end if $0 == __FILE__ then ip = getip puts "当前 IP 地址是: #{format_ip(ip)}" if not needs_recall(ip) then puts "不需要重新拨号" exit() end while needs_recall(ip) recall sleep 4 ip = getip puts "新 IP: #{format_ip(ip)}" end end Happy Hacking! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |