免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2616 | 回复: 9

刚写了个切换网络设置的脚本 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-03-25 16:08 |显示全部楼层
最近频繁往返于公司和家里,两个地方的网络设定完全不同,网关和地址都不一样。换个地方就得手动改一次,不胜其扰。想起IBM的本本就提供一种软件可以保存各地的网络设定。换了地方只要选一下就行了,昨天下决心自己写一个。不过最近工作忙,没时间用c写(老不写了还要查资料)干脆用shell写了一个,用起来也挺爽。发上来给大家看看嘻嘻
第一个文件storeip.sh,用来保存记录的

  1. #!/bin/sh
  2. printf "Enter the Name :"
  3. read iplocal
  4. printf "Enter the IP:"
  5. read ip
  6. printf "Enter the netmask:"
  7. read mask
  8. printf "Enter the gateway:"
  9. read gate
  10. if [ ! -f ipdata ] ; then
  11.         touch ipdata
  12. fi
  13. num=`wc -l ipdata | awk ' { printf "%s", $1=$1+1 } '`
  14. printf "$num\t$iplocal\t\t$ip\t$mask\t$gate\n" >;>; ipdata
复制代码

第二个文件changeip.sh用来提供选择并更改ip地址

  1. #!/bin/sh
  2. card=fxp0
  3. cat ipdata
  4. printf "Enter your selection :"
  5. read select
  6. ip=`awk '{ if ( $1 ~ sel ) { printf "%s", $3 ; } }' sel=$select ipdata`
  7. #cat seeds | awk '{ if ( $1 !~ sel ) { x=x+1 ; printf "%s\t%s\t\t%s\n",x ,$2 ,$3 ; } }' sel=$select >; seeds
  8. mask=`awk '{ if ( $1 ~ sel ) { printf "%s", $4 ; } }' sel=$select ipdata`
  9. gate=`awk '{ if ( $1 ~ sel ) { printf "%s", $5 ; } }' sel=$select ipdata`
  10. sudo ifconfig $card inet $ip netmask $mask up
  11. sudo route delete default
  12. sudo route add default $gate
复制代码

出于安全原因,我们使用了sudo来执行修改网络设置的工作。这样可以以普通用户身分来修改网络设置。ports里面有sudo。装上以后在/usr/local/etc/里面有sudoers设置文件。把它改成例如可以允许wheel组用户都可通过sudo执行root命令。
最后一个,delip.sh删除现存的设定

  1. #!/bin/sh
  2. cat ipdata
  3. printf "Enter your selection :"
  4. read select
  5. 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装在本本上,东跑西颠的各位老兄哦

论坛徽章:
0
发表于 2004-03-25 19:05 |显示全部楼层

刚写了个切换网络设置的脚本

呵呵~8错8错,谢谢quakelee兄!

论坛徽章:
0
发表于 2004-03-27 17:09 |显示全部楼层

刚写了个切换网络设置的脚本

比如说这样的情况可以用脚本实现吗?
2个内核,一个是IPFW的,一个是IPF的了,大家都知道了,如果使用IPF,那么rc.conf中就要改成ipfw_enable="no",如果使用IPFW,那么rc.conf中就该把ipf的设置注释掉,而我的内核是2个,我每次使用不同的内核的时候都要手动修改rc.conf中的设置,可不可以当启用其中一个内核的时候,rc.conf中的内容也会相应的变换这样的脚本呢?
谢了

论坛徽章:
0
发表于 2004-03-27 17:15 |显示全部楼层

刚写了个切换网络设置的脚本

关于rc.conf的调用ipfw_enable="NO" 或者YES
可以试试动太调用ipfw.ko
具体情况自己试一下。
说得不对请指正

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-03-27 18:10 |显示全部楼层

刚写了个切换网络设置的脚本

原帖由 "wangchao66" 发表:
比如说这样的情况可以用脚本实现吗?
2个内核,一个是IPFW的,一个是IPF的了,大家都知道了,如果使用IPF,那么rc.conf中就要改成ipfw_enable="no",如果使用IPFW,那么rc.conf中就该把ipf的设置注释掉,而我的内核..........

man kldload
man kldunload

论坛徽章:
0
发表于 2004-03-27 18:18 |显示全部楼层

刚写了个切换网络设置的脚本

谢楼上的了

论坛徽章:
0
发表于 2004-03-27 19:23 |显示全部楼层

刚写了个切换网络设置的脚本

好麻烦呀  
不就二行命令么?
怎么不用Java来写  

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-03-27 19:29 |显示全部楼层

刚写了个切换网络设置的脚本

原帖由 "i2era" 发表:
好麻烦呀  
不就二行命令么?
怎么不用Java来写  

可以考虑用java来写
windows就也能用了^_^
不知道网络界面的修改会不会不一样,没看过java的这方面

论坛徽章:
0
发表于 2004-03-28 21:26 |显示全部楼层

刚写了个切换网络设置的脚本

我的签名不见了!-o-

论坛徽章:
0
发表于 2004-03-29 11:36 |显示全部楼层

刚写了个切换网络设置的脚本

java我可不会
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP