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 ...
随机推荐
- Windows下驱动安装
推荐使用金山毒霸中的电脑医生进行驱动或DLL文件的扫描,查找并下载 dll文件下载地址: https://www.wenjian.net/ 可以进行下载,告诉该文件的放置路径 其他:
- SpringCloudStream极简教程
简介 Spring Cloud Stream 是一个轻量级消息驱动微服务框架,旨在简化与消息中间件(如 Kafka.RabbitMQ 等)的集成,支持消息的发布和订阅模式.它提供了一种基于 Sprin ...
- 怎么实时更新echarts图标数据?
function getData(){ var request . nem XPHLHttpRequest () ; request . open("get",'http://lo ...
- Zoom
1.zoom to layer ILayer layer = (ILayer)m_mapControl.CustomProperty; m_mapControl.Extent = layer.Area ...
- Mysql之innodb引擎
优势总结 只有数据库引擎为innodb且事务的隔离级别repeatable--read (可重复读)的时候 才会使用mvcc来实现多版本控制 事务中的可重复读可以有效的避免幻读问题 innodb从硬盘 ...
- 我用cursor, 半就开发了一个手机壁纸小程序,真的太强了
前言 我用chatGPT帮我写后端爬虫,分析知乎html代码,爬取知乎壁纸.然后用cursor AI工具,完全使我一个不懂前端uniapp框架的人,开发了一个小程序手机壁纸页面. 原来一周的工作量,半 ...
- JavaWeb HttpSession
/** * 使用session共享数据 */ public class SessionDemo1 extends HttpServlet { @Override protected void doPo ...
- 测试覆盖率 Java 覆盖率 Jacoco 插桩的不同形式总结和踩坑记录
https://testerhome.com/topics/20632 关于Jacoco的小结和踩坑记录 一.概述 测试覆盖率,老生常谈的话题.因为我测试理论基础不是很好,就不提什么需求覆盖率啦这样那 ...
- CentOS7 安装git 配置秘钥公钥克隆代码
建议购买阿里云香港服务器可以免备案,系统镜像选择CentOS7测试 第一步:安装git客户端,默认安装在/usr/libexec/git-core目录 yum -y install git #查看版本 ...
- Qt编写安防视频监控系统51-功能激活
一.前言 随着视频监控系统本身功能的增多,以及用户定制功能的增多(比如视频监控系统摇身一变成了机器人监控.无人机监控.挖掘机监控等),除了提供工作模式这个切换开关,还需要对不同的工作模式启用禁用不同的 ...