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. 如何编写一个高效的Java表达式求值程序

    当然,这个标题是有一点夺人眼球,但我确实这么做了(关于是否相信基准测试结果,这是另一个话题). 所以,上周我一直在找一个小型.实用的计算数学表达式的类库.偶然间我在stackoverflow上看到了一 ...

  2. Hook框架之Frida

    Frida是一款轻量级HOOK框架,可用于多平台上,例如android.windows.ios等.    frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行 ...

  3. Python之常见问题

    一.问题出现:使用Pycharm设置虚拟环境后,打开终端出现如下报错:无法加载文件-\venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本. 解决方式已管理员的身份打开pow ...

  4. vue3-组件通信

    Vue3组件通信和Vue2`的区别: 移出事件总线,使用mitt代替 vuex换成了pinia 把.sync优化到了v-model里面 把$listeners所有的东西,合并到$attrs $chil ...

  5. 鸿蒙ArkUI-X已更新适配API13啦

    ArkUI-X 5.0.1 Release版配套OpenHarmony 5.0.1 Rlease,API 13,新增适配部分API 13接口支持跨平台:框架能力进一步完善,支持Android应用非压缩 ...

  6. uni-app 简单上手

    1.前言 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/ ...

  7. Newstar CTF 2023 week2 pwn

    1.ret2libc 发现存在pop rdi 观察main函数,可以利用puts函数泄露libc from pwn import * from LibcSearcher import * contex ...

  8. 如何优雅地在Django项目里生成不重复的ID?

    前言 本来标题是想叫"生成不重复的四位数"的,不过单纯数字有点局限,推广一下变成不重复 ID 吧~ 这个功能是在做下面图片里这个小项目时遇到的,有点像微信的面对面建群,生成一个随机 ...

  9. 用nginx正向代理,让内网主机通过外网主机访问外网

    需求1:某几个ip的代理 server { listen 9000; # 监听端口 server_name localhost; set $url "proxy_server_doman_o ...

  10. VS Code 变身小霸王游戏机!

    在韩老师的<Visual Studio Code 权威指南>一书中,我向大家推荐了许多好用的插件,其中也不乏许多摸鱼插件,刷知乎.炒股票.看电影.听音乐.追番.看小说,一应俱全. 今天,就 ...