机房用户调试区是静态分配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不冲突的时候,机房网速挺给力的~
全部ok,方法不可行
代码有误。。。。
又想吐槽坑爹的校园网了…能帮忙写个Ping指定网段并输出可Ping的IP地址的脚本不~
写简单点,自己算网络地址#!/bin/bashNETWORK=172.16.8for ip in $(seq 1 254)do IPADDR=$NETWORK.$ip ping -c 2 $IPADDR &>/dev/null && r=0 || r=1 if [ $r -eq 0 ]; then echo "$ip ok" else echo "$ip failed" fidone
if [ $r -eq 0 ] 后面没分号吧…… AIX上没有seq这个命令,有可代替的吗?
没用过aix,百度吧