unix修改ip和计算机名,UNIX shell获取IP和修改IP
UNIX shell获取IP和修改IP
#!/bin/ksh
#全局变量
#已配置信息的网卡个数
ETHNUM=0
#网卡名称信息,多个网卡用#符号分隔
ETHS=""
#网卡IP/掩码/默认网关信息,用:符号分隔,多个网卡用#符号分隔
ETHINFO=""
#网卡名称信息,用数组存储
ETHSArray[0]=""
#网卡IP/掩码/默认网关信息,用数组存储
ETHINFOArray[0]=""
#修改IP时原IP所在网卡在数组中的索引
ETHINDEX=0
function getIP
{
typeset ethList="";
typeset ethaddr="";
typeset ethmask="";
typeset gateway="";
typeset ethinfo="";
# 获取所有网卡信息
ethList=`ifconfig -a | grep 'eth' | awk '{print $1}'`
# 循环所有网卡
for eth in ${ethList}
do
# 获取网卡IP地址
ethaddr=`ifconfig ${eth} | grep 'inet addr:'| awk '{print $2}' | awk -F : '{print $2}'`
# 网卡配置了IP地址
if [ "-$ethaddr" != "-" ]
then
# 获取网卡掩码
ethmask=`ifconfig ${eth} | grep 'inet addr:'| awk '{print $4}' | awk -F : '{print $2}'`
# 获取网卡默认网关
# gateway=`route ${eth}| grep default.*UG.*$eth | awk '{print $2}'`
gateway=`route | grep default.*UG.*$eth | awk '{print $2}'`
# 将该网卡的信息拼成字符串
ethinfo="${ethaddr}:${ethmask}:${gateway}"
ETHSArray[$ETHNUM]="$eth"
ETHINFOArray[$ETHNUM]="$ethinfo"
ETHNUM=`expr $ETHNUM + 1`
# ETHS为空字符串
if [ "-$ETHS" == "-" ]
then
ETHS="${eth}"
else
ETHS="${ETHS}#${eth}"
fi
# ETHINFO为空字符串
if [ "-$ETHINFO" == "-" ]
then
ETHINFO="${ethinfo}"
else
ETHINFO="${ETHINFO}#${ethinfo}"
fi
fi
done
return 0
}
function modifyIP
{
# 保证输入4个参数
if [ $# -ne 4 ]; then
echo "The parameters is not 4!"
return 1
fi
typeset oldIP=$1
typeset newIP=$2
typeset newmask=$3
typeset newgw=$4
# 获取当前网卡信息
getIP
# 判断该原IP是否存在
get_eth_of_IP $oldIP
# 原IP不存在,返回1
if [ $? -ne 0 ]; then
echo "The old IP $oldIP is not exist."
return 1
fi
typeset eth="${ETHSArray[$ETHINDEX]}"
typeset ethinfo="${ETHINFOArray[$ETHINDEX]}"
typeset ethaddr=`echo $ethinfo | awk -F: '{print $1}'`
typeset ethmask=`echo $ethinfo | awk -F: '{print $2}'`
typeset ethgw=`echo $ethinfo | awk -F: '{print $3}'`
# 即时生效方式修改IP
echo "ifconfig $eth $newIP netmask $newmask"
ifconfig $eth $newIP netmask $newmask
if [ "$?" -ne 0 ]; then
echo "Modify old IP $oldIP to new IP $newIP failed."
return 1
fi
# 永久生效方式修改IP
sed "s/$oldIP/$newIP/" /etc/sysconfig/network/ifcfg-$eth > /tmp/ifcfgtemp
sed "s/$ethmask/$newmask/" /tmp/ifcfgtemp > /etc/sysconfig/network/ifcfg-$eth
rm /tmp/ifcfgtemp
#即时生效方式修改网关
route del default
echo "route del default"
route add default gw $newgw dev $eth
echo "route add default gw $newgw dev $eth"
# 永久生效方式修改网关
sed "s/$ethgw/$newgw/" /etc/sysconfig/network/routes > /tmp/routetemp
mv /tmp/routetemp /etc/sysconfig/network/routes
return 0
}
###############################################################
#函数名称:get_eth_of_IP
#功 能:获取IP所在网卡的索引
#输入参数:IP
#返回值:1 没有设置该IP的网卡,0 设置该IP的网卡所在索引。
# 2 传入参数错误
# ETHINDEX值为索引位置
#
###############################################################
function get_eth_of_IP
{
# 保证输入一个参数
if [ $# -ne 1 ]; then
echo "The parameters is not 1!"
return 2
fi
typeset oldIP=$1
typeset ethaddr=""
typeset ethinfo=""
typeset index=0
while [ $index -lt ${#ETHSArray[@]} ]
do
ethinfo="${ETHINFOArray[index]}"
ethaddr=`echo $ethinfo | awk -F: '{print $1}'`
if [ "${ethaddr}" == "${oldIP}" ];then
ETHINDEX=$index
return 0
fi
index=`expr $index + 1`
done
return 1
}
if [ $# -eq 0 ];then
getIP
echo "eas_modify_ip_result = [$ETHINFO]"
#echo $ETHINFO
#echo "]"
exit 0
fi
case $1 in
getip)
getIP
echo "eas_modify_ip_result = ["
echo $ETHINFO
echo "]"
exit 0
;;
modify)
modifyIP $2 $3 $4 $5
exit 0
;;
esac
echo "The parameters are invalid."
exit 0
;;
unix修改ip和计算机名,UNIX shell获取IP和修改IP相关推荐
- gost文件修改计算机电脑名字工具,Ghost后自动修改IP及计算机名方法大全.pdf
Ghost后自动修改IP及计算机名方法大全.pdf Ghost 后自动修改IP及计算机名方法大全 方法一:使用ModiIP 工作原理: 1.客户机全部使用 DHCP 方式获取 IP 地址.由 DHCP ...
- 网络克隆自动修改计算机名ip,关于 Ghost 网络克隆后自动修改 IP 及计算机名的方法.doc...
关于 Ghost 网络克隆后自动修改 IP 及计算机名的方法 关于 Ghost 网络克隆后自动修改 IP 及计算机名的方法最近机房要大批量安装 XP 系统,考虑到种种因素,还是决定采用较成熟的 PXE ...
- 查看及更改计算机名或域,如何查看和修改计算机名、域和工作组
计算机名是唯一的权次于IP地址的一个设置,在一个局域网内,出现两个IP相同的IP地址的话,那么肯定有一 台电脑上不了网. 4而出现两个相同的计算机名的话,同样是有一台电脑是不可能上网的. 出现这种情况 ...
- 电脑服务器名称怎么修改,怎么修改云服务器计算机名
怎么修改云服务器计算机名 内容精选 换一换 将文件上传至Linux服务器一般会采用WinSCP工具.本节为您介绍本地Windows计算机使用WinSCP工具,上传文件至Linux云服务器的操作方法.以 ...
- Android 获取本地外网IP、内网IP、计算机名等信息
一.获取本地外网IP public static String GetNetIp() { URL infoUrl = null; InputStream inStream = null; try { ...
- 修改ip和计算机名,批量设置IP地址和计算机名
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 最近由于病毒肆虐,学校的公共机房又瘫痪了,只好利用网络同传把机器全都克隆了一遍,可问题又来啦,每个计算机都要重新设置IP地址.子网掩码.网关和DNS服务器 ...
- 域管理中经常用到的组策略禁止修改IP及计算机名
组策略方法:禁止修改计算机名: 1."运行"->""gpedit.msc"->"用户配置"->"管理摸 ...
- 计算机名ip地址批量修改吗,怎么批量修改IP和计算机名
@echo off for /f tokens=2 delims=: %%i in ('ipconfig /all ^| findstr /i /c:ip address') do set ip=%% ...
- 自动修改域用户计算机名,Windows自动改计算机名和加入域工具
单位最近要换一批电脑,没钱买高大上的软件,也不准用三方工具. 先写个自动设置计算机名和加域的小工具,压压惊. 功能: 完成系统设置的最后一步,改计算机名,和加入域. 工作方式: 半自动,中途需要手动输 ...
最新文章
- ACMNO.10打印出所有水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。 Output: 153 ???
- source insight 里编辑的时候,每次粘贴后,光标停留在粘贴内容的左面
- 一起谈.NET技术,在Mono 2.8上部署ASP.NET MVC 2
- Android开发——跟随手指的小球实现
- 细说伟哥那些你不知道的神奇用途
- DataX配置及使用
- 简书java前端_Java前端知识之JSP
- 伺服电机常用参数设置_安川伺服电机参数基本调整..doc
- 【点击模型学习笔记】Modeling contextual factors of click rates_MS_AAAI2007
- Redis文档链接(含官方中文)
- oracle查询备份存储路径,Oracle数据库备份和恢复(导出,导入)
- 个体营业执照与公司营业执照的区别
- java登录界面圆形头像_Bootstrap实现圆角、圆形头像和响应式图片
- vc 键盘按键KeyValue值
- 学会这两招将知网下载的CAJ转成Word形式
- 上行30m下行200m是多少宽带_套餐内有多少流量,就加送多少流量!电信流量攻势太凶猛!...
- 微信网页授权登录的方法
- K8s使用Ceph纠删码池做持久化卷
- 读取excel批量生成二维码
- 实战派来了!聊聊百度智能运维的“前世今生” | 技术沙龙