- 论坛徽章:
- 1
|
最近频繁往返于公司和家里,两个地方的网络设定完全不同,网关和地址都不一样。换个地方就得手动改一次,不胜其扰。想起IBM的本本就提供一种软件可以保存各地的网络设定。换了地方只要选一下就行了,昨天下决心自己写一个。不过最近工作忙,没时间用c写(老不写了还要查资料)干脆用shell写了一个,用起来也挺爽。发上来给大家看看嘻嘻
第一个文件storeip.sh,用来保存记录的
- #!/bin/sh
- printf "Enter the Name :"
- read iplocal
- printf "Enter the IP:"
- read ip
- printf "Enter the netmask:"
- read mask
- printf "Enter the gateway:"
- read gate
- if [ ! -f ipdata ] ; then
- touch ipdata
- fi
- num=`wc -l ipdata | awk ' { printf "%s", $1=$1+1 } '`
- printf "$num\t$iplocal\t\t$ip\t$mask\t$gate\n" >;>; ipdata
复制代码
第二个文件changeip.sh用来提供选择并更改ip地址
- #!/bin/sh
- card=fxp0
- cat ipdata
- printf "Enter your selection :"
- read select
- ip=`awk '{ if ( $1 ~ sel ) { printf "%s", $3 ; } }' sel=$select ipdata`
- #cat seeds | awk '{ if ( $1 !~ sel ) { x=x+1 ; printf "%s\t%s\t\t%s\n",x ,$2 ,$3 ; } }' sel=$select >; seeds
- mask=`awk '{ if ( $1 ~ sel ) { printf "%s", $4 ; } }' sel=$select ipdata`
- gate=`awk '{ if ( $1 ~ sel ) { printf "%s", $5 ; } }' sel=$select ipdata`
- sudo ifconfig $card inet $ip netmask $mask up
- sudo route delete default
- sudo route add default $gate
复制代码
出于安全原因,我们使用了sudo来执行修改网络设置的工作。这样可以以普通用户身分来修改网络设置。ports里面有sudo。装上以后在/usr/local/etc/里面有sudoers设置文件。把它改成例如可以允许wheel组用户都可通过sudo执行root命令。
最后一个,delip.sh删除现存的设定
- #!/bin/sh
- cat ipdata
- printf "Enter your selection :"
- read select
- cat ipdata | awk '{ if ( $1 !~ sel ) { x=x+1 ; printf "%s\t%s\t\t%s\t%s\t%s\n",x ,$2 ,$3 ,$4 ,$5 ; } }' sel=$select >; ipdata
复制代码
最后为了更加方便的使用这个脚本,我在gnome里添加了一个启动器,选中为在终端中运行。这样需要修改ip的时候,只要鼠标一点,输入1或者2做个选择,就能轻松的改变网络设定了 :em11:
不过只限于把freebsd装在本本上,东跑西颠的各位老兄哦 |
|