静态分配时找出网段中的可用IP

机房用户调试区是静态分配IP,网线上有配置信息标签。可是并不是所有的网线都有标签,于是时不时的就有IP冲突(wireshark可用看到冲突的IP地址和设备),掉线那是常事。连着VPN呢,时不时掉线真折腾人,心里默念谁特么的非要跟我配一样的IP!

受不了了,换IP!可是,改了几个就一直连不上了。然后就想知道这网段中到底还有没有可用IP。考虑用ping解决,但是前提是电脑不能联网,ping哪里都是unreachable,用nmap -sP 网络地址/掩码 也只能看到自己在线。只好模拟手工的方法:改IP,然后ping网关。

windows上面可不好实现,虚拟机开个linux,桥接,写代码如下:

#!/bin/bash

#功能: 在一个网段中找出可用IP,用于解决静态分配时IP冲突问题的暂时解决方案。
#这玩意也不常用,懒得写的复杂了。用到的时候手动改下脚本里面的IP和网关
#update140405:此方法貌似不可行

for host in $(seq 194 222)
do
	sed -i "s/IPADDR.*/IPADDR=202.106.43.$host/g" /etc/sysconfig/network-scripts/ifcfg-eth0
	sed -i "s/NETMASK.*/NETMASK=255.255.255.224/g" /etc/sysconfig/network-scripts/ifcfg-eth0
	sed -i "s/GATEWAY.*/GATEWAY=202.106.43.193/g" /etc/sysconfig/network-scripts/ifcfg-eth0
	/etc/init.d/network restart &>/dev/null
	ping -c 2 202.106.43.193 &>/dev/null && r=0 || r=1
	if [ $r -eq 0 ]; then
		echo "$host is available"
	else
		echo "$host is not available! please try another..."
	fi
done

每次要重启网络,有点慢。用sniff软件应该可以更快速的解决问题。

最终找到一个可用的主机 :194。

(PS. 在家实验时怎么都是available啊...难道这种方式有问题?)

PPS. IP不冲突的时候,机房网速挺给力的~

机房网速

机房网速

机房网速

机房网速

 

6 thoughts on “静态分配时找出网段中的可用IP

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注