天天看点

给VMware中的操作系统分配空闲ip

    前一段时间,我住的小区宽带改造(西安广电小区网络),管理员为了对付万恶的arp病毒和残酷的广播风暴,登记了每个用户家庭登入的终端的MAC地址进行了绑定配置,由于小区网络拓扑构成简单,所以取消了动态地址分配DHCP,统一给用户分配了静态IP。

   这样一来,我在电脑(真机)上安装的虚拟机VMware,因为最初搭建的时候采用的是桥接方式,直连到物理网络,所以现在无法获取IP地址,以致不能连入internet,自己随意手动输入一个静态IP又很容易因为和已使用IP相同而造成地址冲突问题。。。但是,我又不想采用真机搭建代理服务器的形式,所以,就想到用下面的手段来查找和获取小区局域网内空闲的IP地址。

    因为现在90%以上的用户都在自己的计算机上安装了防火墙,所以,我们利用PING命令发出的试探往往得到的是Request timed out (请求超时),从而很难判断目标IP是否存在。

    其实,就算目标计算机对PING命令进行了屏蔽,我们(发出命令方)仍然会在自己计算机上获得一些信息,这就是ARP(地址解析协议)在局域网内进行了广播以后给我们返回的信息。

    知道了这些,我们就可以开始行动了。。。

    首先,ping IP地址进行测试。

遇到这样的,不用我说,大家也都知道这个IP地址已经存在被使用了。。

更多的时候,会是下面这样:

这个时候,就需要用arp -a命令来进一步判断了:

这样看来,这个IP地址实际已被占用。。。

于是,我们可以重复上面的步骤来继续寻找可能空闲的ip地址。

针对我们小区内网分配的是192.168.1.X的C类私有地址,所以可以简单的写一个批处理程序帮我们查找。

新建一个文本文档,写入内容如下(保存名称为:findip.bat):

@echo off

cls

if "%1x"=="x" goto help

if "%2x"=="x" goto startip

if "%3x"=="x" goto endip

@echo finding...wait...

arp -d

for /l %%i in (%2,1,%3) do ping -n 4 %1.%%i

@echo finish...

ping 127.0.0.1 -i 5 >nul

@echo the ip address in the nether list is exist and occupied,  please choose another one without the list.

arp -a

goto end

:startip

@echo Warning: the startip and endip are absent!

goto help

:endip

@echo Warning: the endip is missing!

:help

@echo 此命令的用法是: findip[C类地址网络位][开始IP地址][结束IP地址]

@echo for example: findip 192.168.1 1 254

pause press any key to quit

:end

(附件中我上传了编辑好的这个文件)

将此批处理文件放到%systemroot%下,然后在cmd中执行,如截图所示:

最后的list中显示的结果即是被占用的IP地址,然后我们就可以方便的选出没有被占用的IP地址进行使用了。

本文转自 jrfly331 51CTO博客,原文链接:http://blog.51cto.com/mrfly/32257,如需转载请自行联系原作者

继续阅读