changeIP.sh一键切换本机ip脚本
changeIP.sh
vi changeIP.sh
chmod +x changeIP.sh
#!/bin/bash
export IFCFG=/etc/sysconfig/network-scripts/ifcfg-ens33
PS3="select your workspace of IP: "
select i in "home" "hospital-outer" "hospital-inner" "check"
do
case $i in
home)
echo -e "工作在家,设置ip如下:"
sed -r -i s/^IPADDR=.*$/IPADDR="192.168.1.48"/g $IFCFG
sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG
sed -r -i s/^GATEWAY=.*$/GATEWAY="192.168.1.1"/g $IFCFG
sed -r -i s/^DNS=.*$/DNS="192.168.1.1"/g $IFCFG
systemctl restart network
break
;;
hospital-outer)
echo "杏花岭中心医院外网,设置ip如下:"
sed -r -i s/^IPADDR=.*$/IPADDR="192.168.3.48"/g $IFCFG
sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG
sed -r -i s/^GATEWAY=.*$/GATEWAY="192.168.3.1"/g $IFCFG
sed -r -i s/^DNS=.*$/DNS="192.168.3.1"/g $IFCFG
systemctl restart network
break
;;
hospital-inner)
echo "杏花岭中心医院内网,设置ip如下:"
sed -r -i s/^IPADDR=.*$/IPADDR="111.111.112.48"/g $IFCFG
sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG
sed -r -i s/^GATEWAY=.*$/GATEWAY="111.111.112.254"/g $IFCFG
sed -r -i s/^DNS=.*$/DNS="111.111.110.250"/g $IFCFG
systemctl restart network
break
;;
check)
echo "查看ip如下:"
break
;;
*)
echo -e "\033[35mUsage:{$0 1|2|3} \033[0m"
;;
esac
done
cat $IFCFG|grep -E '^IPADDR|^PREFIX|^GATEWAY|^DNS'
改进changeIP.sh
#!/bin/bash
export IFCFG=/etc/sysconfig/network-scripts/ifcfg-ens33
checkip(){
echo $IPADDR|grep "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}$" > /dev/null;
#IP地址必须为全数字
if [ $? -ne 0 ];then
echo "输入ip非法!"
exit
fi
for ((i=1;i<=4;i++))
do
num=`echo $IPADDR|cut -d. -f$i`
##每个数值必须在0-255之间
if [[ $num -gt 255 || $num -lt 0 ]];then
echo "输入ip数值大小不符合!"
exit
fi
done
}
checkprefix(){
if [[ $1 -gt 32 || $1 -lt 0 ]];then
echo "输入ip数值大小不符合!"
exit
fi
}
PS3="select your workspace of IP: "
select i in "home" "hospital-outer" "hospital-inner" "user-defined" "check"
do
case $i in
home)
echo -e "工作在家,设置ip如下:"
sed -r -i s/^IPADDR=.*$/IPADDR="192.168.1.48"/g $IFCFG
sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG
sed -r -i s/^GATEWAY=.*$/GATEWAY="192.168.1.1"/g $IFCFG
sed -r -i s/^DNS=.*$/DNS="192.168.1.1"/g $IFCFG
break
;;
hospital-outer)
echo "杏花岭中心医院外网,设置ip如下:"
sed -r -i s/^IPADDR=.*$/IPADDR="192.168.3.48"/g $IFCFG
sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG
sed -r -i s/^GATEWAY=.*$/GATEWAY="192.168.3.1"/g $IFCFG
sed -r -i s/^DNS=.*$/DNS="192.168.3.1"/g $IFCFG
break
;;
hospital-inner)
echo "杏花岭中心医院内网,设置ip如下:"
sed -r -i s/^IPADDR=.*$/IPADDR="111.111.112.48"/g $IFCFG
sed -r -i s/^PREFIX=.*$/PREFIX="24"/g $IFCFG
sed -r -i s/^GATEWAY=.*$/GATEWAY="111.111.112.254"/g $IFCFG
sed -r -i s/^DNS=.*$/DNS="111.111.110.250"/g $IFCFG
break
;;
user-defined)
echo "用户自定义,ip信息"
read -p "请输入ip地址:" IPADDR
checkip $IPADDR
sed -r -i s/^IPADDR=.*$/IPADDR="$IPADDR"/g $IFCFG
read -p "请输入掩码:" PREFIX
checkprefix $PREFIX
sed -r -i s/^PREFIX=.*$/PREFIX="$PREFIX"/g $IFCFG
read -p "请输入网关:" IPADDR
checkip $GATEWAY
sed -r -i s/^GATEWAY=.*$/GATEWAY="$GATEWAY"/g $IFCFG
read -p "请输入域名解析:" IPADDR
checkip $DNS
sed -r -i s/^IPADDR=.*$/IPADDR="$DNS"/g $IFCFG
break
;;
check)
echo "查看ip如下:"
break
;;
*)
echo -e "\033[35mUsage:{$0 1|2|3|4} \033[0m"
;;
esac
done
cat $IFCFG|grep -E '^IPADDR|^PREFIX|^GATEWAY|^DNS'
read -p "是否重启应用ip设置(yes/no)?" INPUT
while true;do
case $INPUT in
y|yes)
echo "you input is YES"
systemctl restart network
break
;;
n|no)
echo "you input is NO"
break
;;
*)
echo -n "Input ERROR,please input yes or no?"
read INPUT
;;
esac
done
changeIP.sh一键切换本机ip脚本的更多相关文章
- SuperUpdate.sh 一键更换Linux软件源脚本
一.前言 有时候会遇到 Linux 的源更新速度非常的缓慢,特别是在国内使用默认的源,因为国内的网络环境,经常会出现无法更新,更新缓慢的情况.在这种情况下,更换一个更适合或者说更近,更快的软件源,会为 ...
- [批处理]自动修改本机IP地址
前言 抱着笔记本经常到处跑的人,今天回宿舍上网,明天去机房上网,后面去办公室上网,每到一个地方,都要更换一次IP网关掩码 如果都是DHCP还好,关键是为了组织为了方便管理这些地方都是使用的静态IP,所 ...
- Linux 项目 shell 自动获取报告本机IP (1) | 通过shell 自动获取报告本机IP
由于电脑设置静态IP经常出现链接不上网络,动态IP又非常不方便,故有了这个想法并实现 原理: Linux,包含PC机器,树莓派等,通过shell 自动获取报告本机IP | 通过 Mutt+Msmtp ...
- 通过PowerShell查询本机IP地址
脚本内容如下: Write-Host "本机IP地址为:"(ipconfig|findstr "IPv4")[1].split(":")[1 ...
- 做一个自动修改本机IP和mac的bat文件
原文:做一个自动修改本机IP和mac的bat文件 1.ip bat修改理论探讨 前两天我突然萌生了一个念头:能不能做一个小程序来实现自动配置或修改IP和mac,达到一键搞定的目的,这样尤其适合那些带着 ...
- 如何获取本机IP
GetLocalHost 直接通过InetAddress.getLocalHost()来获取,其主要逻辑如下 InetAddress.getLocalHost(): String hostname = ...
- 一键批量ping任意ip段的存活主机
=======================by me===================================== @echo offecho.color FC for /f %%i ...
- Shell 命令行获取本机IP,grep的练习
Shell 命令行获取本机IP,grep的练习 在 mac 下面输入 ifconfig 或者在 linux 下面输入 ip a 就可以得到我们的网卡信息.不过通常情况下,我们需要查看的是我们的IP地址 ...
- iOS 国际化 (国际化文字内容不改变,app名字国际化,一键切换语言)
首先我们要分三个步骤讲解怎么一步步实现app名字国际化.内容国际化.一键切换国际化的: 一.app设置内容或者可以说是app名字或者可以说Info.Plist中的东西国际化 app名字国际化 1. ...
- 一键安装apache-2.4.38脚本
[root@lamp scripts]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@lamp scripts ...
随机推荐
- java内存区域——daicy
Java虚拟机 运行时数据区 主要分为五部分:方法区,堆(这两块是所有线程共享的区域),程序计数器,本地方法栈,虚拟机栈(vm stack)(这三块为线程隔离区域) 程序计数器(Program Cou ...
- java应用详解
java应用详解 文档介绍: 1.nio应用(ServerSocketChannel.FileChannel). 2.优化jvm参数提升eclipse运行速度. 3.maven3.0.3安装及入门例子 ...
- 解决页面隐藏的元素闪现的问题v-cloak
在v-if处加上v-cloak属性 <div class="sys-changeBox" v-cloak v-if="showTosat" @click. ...
- 在vue中使用html2canvas生成图片
首先,在vue中引入html2canvas,执行命令 npm install --save html2canvas 然后在需要生成图片的页面中引入 import html2canvas from 'h ...
- Linux之新增硬盘,分区,挂载
1.新增硬盘后, 查看当前磁盘信息 fdisk -l 可以看到除了当前的第一块硬盘(sda)外还有一块sdb的第二块硬盘(sdb),然后用命令: fdisk /dev/sdb 给第二块硬盘进行分区 ...
- golang之基础语法
Go 是一种强类型语言. 这意味着你声明的每个变量都绑定到特定的数据类型,并且只接受与此类型匹配的值. Go 有四类数据类型: 基本类型:数字.字符串和布尔值 聚合类型:数组和结构 引用类型:指针.切 ...
- Javascript 常用封装(一)
1.获取URL的query参数 作用:根据传入的属性名输出对应的值,没有则输出null 注意:url传参中包含中文时,默认的获取结果会乱码,需要进行解码 //解析query传参 url参数中含有中文时 ...
- 鸿蒙UI系统组件01——文本组件(Text/Span)
如果你也对鸿蒙开发感兴趣,加入"Harmony自习室"吧!点击下面的名片关注公众号. 1.概述 Text是文本组件,是我们开发UI界面中最常见的组件之一,通常用于展示用户的视图,如 ...
- Docker OCI runtime exec failed: exec failed: container_linux.go:344: starting container process caus
docker执行命令:docker exec -it 1e33b26152e1 /bin/bash 在进入容器报错:OCI runtime exec failed: exec failed: cont ...
- 一次 Spring 扫描 @Component 注解修饰的类坑
问题现象 之前遇到过一个问题,在一个微服务的目录下有相同功能 jar 包的两个不同的版本,其中一个版本里面的类有 @Component 注解,另外一个版本的类里面没有 @Component 注解,且按 ...