shell实现网络切换脚本
题目
公司软件工程师在测试嵌入式开发终端的过程中需要上网查找资料,其中连接终端时的IP配置如下:IP地址:192.168.0.120;子网掩码:255.255.255.0;默认网关:192.168.0.1。 该工程师上网查资料的网络配置为:IP:172.16.111.100;子网掩码:255.255.255.0;默认网关:172.16.111.1。请编写shell脚本,方便其实现网络切换。
思路
1.通过if判断切换的ip地址
2.使用sed函数将kali的网卡配置文件进行文本替换,完成ip地址的转换
3.重启网卡
shell代码
#! /bin/bash
NETPATH="/etc/network/interfaces"
IP1="192.168.0.120"
NETMASK1="255.255.255.0"
GATEWAY1="192.168.0.1"
IP2="172.16.111.100"
NETMASK2="255.255.255.0"
GATEWAY2="172.16.111.1"
Toggle() {
# 判断需要切换的IP配置
echo "请输入要切换的ip配置,连接终端的为1,上网的为2: "
read NUM
#修改eth0的配置为连接终端的
if [ $NUM -eq 1 ]
then
sed -i 's/address '${IP2}'/address '${IP1}'/g' ${NETPATH}
sed -i 's/netmask '${NETMASK2}'/netmask '${NETMASK1}'/g' ${NETPATH}
sed -i 's/gateway '${GATEWAY2}'/gateway '${GATEWAY1}'/g' ${NETPATH}
fi
#修改eth0的配置为上网的
if [ $NUM -eq 2 ]
then
sed -i 's/address '${IP1}'/address '${IP2}'/g' ${NETPATH}
sed -i 's/netmask '${NETMASK1}'/netmask '${NETMASK2}'/g' ${NETPATH}
sed -i 's/gateway '${GATEWAY1}'/gateway '${GATEWAY2}'/g' ${NETPATH}
fi
clear; echo "------------------------查看IP地址配置-----------------------------"
cat ${NETPATH}
# 重启网卡
echo "输入y表示立即重启网卡,输入任意键退出: "
read SURE
S=`echo ${SURE} |tr 'A-Z' 'a-z'`
if [ ${S} == 'y' ];then
echo "正在重启网络使修改的IP生效,请用新IP地址尝试登陆……"
service networking restart
else
echo "还没有重启网络,修改的IP地址未生效,请手动重启使其生效"
fi
}
Toggle
菜鸟第一次发帖,如有问题或优化建议欢迎大佬们评论! |