我的铁通 ADSL 最近几天经常被铁通分配 10.*.*.* 的内网 IP,让我的 MLDonkey 基本上用不了。今天有空顺手写了个脚本自动测试 IP,如果是内网的就断线重拨,直到获得外网 IP 为止
=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!
分享到:
- 2008-04-04 23:08
- 浏览 3560
- 评论(0)
- 论坛回复 / 浏览 (0 / 3114)
- 查看更多
相关推荐
ubuntu下创建热点的脚本 ,更方便的管理笔记本的wifi. ./ap.sh 就可以打开wifi了 ./ap.sh close 关闭wifi
ubuntu系统更改ip
ubuntu-post-install, 一套用于Ubuntu的post安装 shell 脚本 安装脚本Ubuntu的一套交互式的post安装和维护脚本。 它们设计用来安装你最喜欢的应用程序,设置你首选的设置,等等 大部分自动。这个项目是免费软件;你...
ubuntu自动安装nginx php脚本ubuntu自动安装nginx php脚本
使用Ubuntu的时候,有时需要修改IP地址和MAC,而用命令行的形式会敲很多东西,用图形界面的方式又找不到什么地方能修改MAC,所以我写了这个小软件,可修改ubuntu的IP地址和MAC
ubuntu图形界面配置IP步骤详解linux系统.doc
ubuntu下安装xen的脚本 放在这里备份
ubuntu.sh安装脚本,用于安装ubuntu系统镜像
ubuntu更改IP的shell代码,自己写的,比较拙,请指正
ubuntu20.04固定ip地址配置.pdf
ubuntu tmux 自动执行shell脚本,可创建多个session,多个window。多个panes, 平铺所有的panes,对指定session下指定window的指定panes发送指定的多条命令,后台创建! 稍微修改可做成自己的自启动脚本,
给ubuntu下配置右键菜单的脚本,文件如下: ./apkInstall ./compare ./chmod777.sh ./set-as-Meld-left ./pushFileToSdcard ./compare-to-left
ubuntu16.04自动安装mysql5.7的部署脚本,内附mysql5.7,脚本中有注释,另有数据库搭建脚本。
ubuntu.sh脚本下载,用于LinuxonAndroid项目中的ubuntu 执行
能够方便的备份当前的Ubuntu系统,当遇到问题时可以进行方便的恢复当前系统,十分简单方便。类似于WINDOWS的GHOST。
#/usr/bin/env bash # Name: get_network_...# Test under Ubuntu 10.04 only. #---------------------------- NIC=eth0 MAC=`LANG=C ifconfig $NIC | awk '/HWaddr/{ print $5 }' ` IP=`LANG=C ifconfig $NIC | awk
ubuntu设置静态ip,设置静态ip学习开发,50字节50字节50字节
ubuntu 11.10 设置固定ip,需要vi /etc/network/interfaces。
ubuntu9.04双网卡双IP配置方法
使用Ubuntu 22.04.2 LTS编写shell脚本第一部分 Shell脚本的简介 查看系统是否可以写Shell脚本 编写一个简单的shell脚本 变量 数组 简单的读写文件