- IP:由192.168.1.1~192.168.1.254.
- 先使用电脑以动态IP的方式自动获取ip地址联网,然后通过以下方法查询子网掩码和默认网关地址:
- IP:由192.168.1.1~192.168.1.254.
- 先使用电脑以动态IP的方式自动获取ip地址联网,然后通过以下方法查询子网掩码和默认网关地址:
转载于:https://www.cnblogs.com/yuanqiangfei/p/8746015.html
#!/bin/bash
#Auto modify ip and hostnameIP_CONFIG='/etc/sysconfig/network-scripts/ifcfg-eth0'
HOSTNAME_CONFIG='/etc/sysconfig/network'
HOSTS_CONFIG='/etc/hosts'
#定义一个IP主要内容数组
a=0 #定义变量a为数组的下标,动态使用的时候调用IP_ARRAY[a]
IP_ARRAY=(
IPADDR
NETMASK
GATEWAY
)#判断IP是否符合标准规则
function judge_ip(){
#这里local $1出错,用2>/dev/null屏蔽掉错误,暂未发现影响输出结果
local $1 2>/dev/null
TMP_TXT=/tmp/iptmp.txt
echo $1 > ${TMP_TXT}
IP_ADDR=grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' ${TMP_TXT}
#判断有没有符合...规则的IP
if [ ! -z "${IP_ADDR}" ];then
local j=0;
#通过循环来检测每个点之前的数值是否符合要求
for ((i=1;i<=4;i++))
do
local IP_NUM=echo "${IP_ADDR}" |awk -F. "{print $"$i"}"
#判断IP_NUM是否在0与255之间
if [ "${IP_NUM}" -ge 0 -a "${IP_NUM}" -le 255 ];then
((j++));
else
return 1
fi
done
#通过j的值来确定是否继续匹配规则,循环四次,若都正确j=4.
if [ "$j" -eq 4 ];then
#确认是否为自己想要输入的IP地址
rm -rf ${TMP_TXT}
return 0
fi
else
return 1
fi
}#取得正确的IP值
#通过调用函数judge_ip,变量IP_ADDR的最终值就是正确的
function read_right_IP(){
read -p "请输入${IP_ARRAY[a]}的值:" IP_ADDRSIP_ADDRS=""
judge_ip "${IP_ADDRS}"; i=`echo $?` #循环直到输入正确的IP为止 until [ "$i" -eq 0 ];do echo -e "\033[31m\n你输入了错误的${IP_ARRAY[a]}值:${IP_ADDRS} ====>>>>\033[0m" read -p "重新输入${IP_ARRAY[a]},请输入:" IP_ADDRS judge_ip "${IP_ADDRS}"; i=`echo $?` done
}
#判断网卡配置文件,存在就备份,不存在则新建一个空白文件
function chang_ip(){
if [ -f ${IP_CONFIG} ];then
cat ${IP_CONFIG}
cp ${IP_CONFIG} ${IP_CONFIG}.bak
echo -e "\033[32m下面将修改IP...\033[0m"
rm -rf ${IP_CONFIG} && touch ${IP_CONFIG};
#把部分基本信息导入到网卡配置文件内
cat >${IP_CONFIG} <<EOF
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
EOF
##########################################
#循环五次,共调用函数五次,分别获取需要设置的所有数据
for ((a=0;a<=2;a++))
do
read_right_IP;
echo -e "\033[32m\n${IP_ARRAY[a]}=${IP_ADDRS}\033[0m"
#把内容追加到网卡配置文件的最后
echo -e "${IP_ARRAY[a]}=${IP_ADDRS}" >> ${IP_CONFIG}
done
echo -e "\033[32m\n+++++++设置的IP相关信息如下+++++++\033[1m"
cat ${IP_CONFIG};
echo -e "\033[32m\n++++++++++++++++++++++++++++++++++\033[0m"
else
echo -e "\033[31m网卡配置文件:${IP_CONFIG}不存在,请检查系统是否被破坏...\033[0m"
fi
}##########################################
chang_ip
if [ "$?" -eq 0 ];then
echo -e "\033[32m修改IP success ...\033[0m"
echo -e "\033[32m删除70-persistent-cd.rules 文件...\033[0m"
rm -f /etc/udev/rules.d/70-persistent-cd.rules
echo -e "\033[32m重启service network restart网卡...\033[0m"
service network restart
ping -c 3 10.1.2.254
echo -e "\033[32m history -C ...\033[0m"
history -c
echo -e "\033[32m clean /var/log/messages ...\033[0m"
echo "" >/root/.bash_history
echo "" >/var/log/messages
echo -e "\033[32m delete change_ip.sh \033[0m"
rm -f /root/change_ip.shelse
echo -e "\033[31m失败!请检查IP配置文件...\033[0m"
fi转载于:https://blog.51cto.com/capfzgs/2361106
资料一:
原文链接:http://blog.csdn.net/u011069096/article/details/49407161
Linux版本:Centos5
第一种方法:进入命令终端,切换到root用户,执行setup命令,在网络设置中设置主机IP。选择network configuration 选项后,设置主机IP,子网掩码以及网关,保存后退到命令行下,这时候我们的设置还没有生效,需要执行命令 /etc/rc.d/init.d/network restart ,重启网卡,这时候设置生效,使用ifconfig查看设置效果。
第二种方法:使用命令
ifconfig eth0 192.168.0.1(自己要设置的IP)这个命令是更改主机IP,回车后你什么都看不到,就表示成功了,但是此命令所做的更改在下次重启后就会失效。
ifconfig eth0 network 255.255.255.0(自己设置的子网掩码)该命令是设置主机的子网掩码,所做的设置也是临时的。
第三种方法:修改系统的配置文件
Linux中一切都是文件,对应网络配置也是不例外,可以到/etc/sysconfig/network-scripts/ifcfg-eth0这个文件中,对各个属性进行修改,但该方法和方法一一样,需要重启网卡才会生效,即执行/etc/rc.d/init.d/network restart命令即可。
资料二:
设置IP和掩码
ifconfig eth0 192.168.5.40 netmask 255.255.255.0
设置网关
route add default gw 192.168.5.1资料三:
一般主机IP地址的解析顺序依次是DNS,NIS,本机host档案。
要改变这个顺序, 可以建立一个/etc/netsvc.conf文件,并在这个档案中加一行:
hosts=local,bind,nis
这样主机IP地址就先从本地档案(/etc/hosts)开始搜索,其次再去DNS server,最後是NIS server。
也可通过执行
export NSORDER=local,bind,nis
改变环境变量NSORDER 来改变顺序