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 ...
随机推荐
- Python基础:Python可变对象和不可变对象
Python在heap中分配的对象分成两类:可变对象和不可变对象.所谓可变对象是指,对象的内容是可变的,例如list.而不可变的对象则相反,表示其内容不可变. 不可变对象:int,string,flo ...
- Kafka可视化工具之Kafka Tool
官网: https://www.kafkatool.com/download.html Kafka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序. Kafka Tool提供 ...
- 高性能消息队列之nsq
NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息. NSQ 具有分布式和去中心化拓扑结构,该结构具有无单点故障.故障容错.高可用性以及能够保证消息的可靠传递的 ...
- Redis常见问题汇总
日常使用中Redis中配到的问题汇总 1. RedisDesktopManager提示:Connection error: QRedisClient compiled without ssh supp ...
- 命令行应用开发初学者指南:脚手架篇、UI 库和交互工具
在日常的前端开发工作中,我们经常依赖各种命令行工具来提高效率和代码质量.例如,create-react-app 和 eslint 等工具不仅简化了项目的初始化过程,还能自动执行代码检查和格式化任务.当 ...
- asp.net 简单日志收集
做开发的都知道,完整的日志记录对问题的解决,回溯是多么的重要,多么的不可缺少. 那么我们怎么记录完整的日志? 今天,我们来说一说问题:从哪里开始记录呢?在哪里保存呢? IHttpModule,这个大家 ...
- oracle客户端安装先决条件检查出现PRVF-7531错误
场景:在局域网内,远程一台客户机进行客户端安装 度娘后,说一般情况下,由于操作系统未开启默认共享,导致Oracle无法检查环境的可用性. 查看server服务正常开启. 通过net share将c进行 ...
- OSG开发笔记(三十九):OSG中模型的透明度实现、球体透明度Demo
前言 在OSG中,对于一些效果未被选中或者包含等业务,需要半透明效果来实现. 本篇描述OSG的半透明实现方式. Demo 透明 功能概述 透明效果在三维场景中扮演着重要角色,它 ...
- django内置序列化组件(drf前身)
目录 一.django内置序列化组件(drf前身) 一.django内置序列化组件(drf前身) 一.django内置序列化组件(drf前身) 这里的内置序列化组件,其实就是实现将后端数据,存放到字典 ...
- ChatGPT接口测试用例生成的流程
通常,使用ChatGPT生成接口测试用例的流程可以分为以下关键步骤. 收集接口信息 收集接口的相关文档和信息,如接口名称.请求方法.请求参数.返回结果等.这些是ChatGPT生成测试用例需要的输入信息 ...