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脚本的更多相关文章

  1. SuperUpdate.sh 一键更换Linux软件源脚本

    一.前言 有时候会遇到 Linux 的源更新速度非常的缓慢,特别是在国内使用默认的源,因为国内的网络环境,经常会出现无法更新,更新缓慢的情况.在这种情况下,更换一个更适合或者说更近,更快的软件源,会为 ...

  2. [批处理]自动修改本机IP地址

    前言 抱着笔记本经常到处跑的人,今天回宿舍上网,明天去机房上网,后面去办公室上网,每到一个地方,都要更换一次IP网关掩码 如果都是DHCP还好,关键是为了组织为了方便管理这些地方都是使用的静态IP,所 ...

  3. Linux 项目 shell 自动获取报告本机IP (1) | 通过shell 自动获取报告本机IP

    由于电脑设置静态IP经常出现链接不上网络,动态IP又非常不方便,故有了这个想法并实现 原理: Linux,包含PC机器,树莓派等,通过shell 自动获取报告本机IP  | 通过 Mutt+Msmtp ...

  4. 通过PowerShell查询本机IP地址

    脚本内容如下: Write-Host "本机IP地址为:"(ipconfig|findstr "IPv4")[1].split(":")[1 ...

  5. 做一个自动修改本机IP和mac的bat文件

    原文:做一个自动修改本机IP和mac的bat文件 1.ip bat修改理论探讨 前两天我突然萌生了一个念头:能不能做一个小程序来实现自动配置或修改IP和mac,达到一键搞定的目的,这样尤其适合那些带着 ...

  6. 如何获取本机IP

    GetLocalHost 直接通过InetAddress.getLocalHost()来获取,其主要逻辑如下 InetAddress.getLocalHost(): String hostname = ...

  7. 一键批量ping任意ip段的存活主机

    =======================by me===================================== @echo offecho.color FC for /f %%i ...

  8. Shell 命令行获取本机IP,grep的练习

    Shell 命令行获取本机IP,grep的练习 在 mac 下面输入 ifconfig 或者在 linux 下面输入 ip a 就可以得到我们的网卡信息.不过通常情况下,我们需要查看的是我们的IP地址 ...

  9. iOS 国际化 (国际化文字内容不改变,app名字国际化,一键切换语言)

    首先我们要分三个步骤讲解怎么一步步实现app名字国际化.内容国际化.一键切换国际化的: 一.app设置内容或者可以说是app名字或者可以说Info.Plist中的东西国际化  app名字国际化  1. ...

  10. 一键安装apache-2.4.38脚本

    [root@lamp scripts]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@lamp scripts ...

随机推荐

  1. Python3之常用包汇总

    Python包网站: https://pypi.org/ 1. 繁体与简体转换(https://github.com/berniey/hanziconv.git) pip install hanzic ...

  2. Centos查找Tomcat路径并重启

    [root@devrestcloud ~\]# find / -name \*tomcat\* [root@devrestcloud ~]# cd /usr/tomcat/apache-tomcat- ...

  3. ABS函数:C语言与Excel中的绝对值计算

    ABS函数:C语言与Excel中的绝对值计算 ABS函数在不同的编程和计算环境中有着相似但又有所区别的用途.在本文中,我们将重点探讨ABS函数在C语言中的应用,同时也会结合Excel中的ABS函数进行 ...

  4. java.time 的纪年方式

    Date date = new Date(); Instant instant = date.toInstant(); Chronology chronology = HijrahChronology ...

  5. 【C#】【平时作业】习题-8-异常处理

    目录 一.概念题 什么是异常处理? 异常处理的语法结构是什么? finally块有何作用? throw语句有何作用? 二.程序设计 一.概念题 什么是异常处理? 异常是在程序执行期间出现的问题.C# ...

  6. Qt/C++编写的Onvif调试助手调试神器工具/支持云台控制/预置位设置等/有手机版本

    一.功能特点 广播搜索设备,支持IPC和NVR,依次返回. 可选择不同的网卡IP进行对应网段设备的搜索. 依次获取Onvif地址.Media地址.Profile文件.Rtsp地址. 可对指定的Prof ...

  7. Qt音视频开发33-ffmpeg安卓版

    一.前言 一直都想搞个安卓版本的视频监控程序,很早以前弄过一个,采用的是早期的ffmpeg2的lib文件,对于现在众多的网络流媒体格式,支持有限,而且新的Qt编写安卓程序,结构上也变动了,新的安卓系统 ...

  8. 将maven项目打包上传到私服

    1. 配置私服账户密码 在maven 的setting.xml 中配置用户名和密码: <servers> <server> <username>deployment ...

  9. 巧技拾遗 | JavaScript 中 Array.every 和 Array.map 的巧妙结合

    这几天在跟着学一点 vue3 + TypeScript 中表单验证的实例,看到一个实现,觉得非常巧妙. 需求概述 我们有一个列表 funcArr ,里面存放函数,比如 funcArr = [ func ...

  10. 16. C++快速入门--模板和Concept

    待修改 1 定义模板 1.1 模板形参 模板参数 模板可以有两种参数, 一种是类型参数, 一种是非类型参数 这两种参数可以同时存在, 非类型参数 的类型 可以是 模板类型形参 template < ...