瑞星卡卡安全论坛

首页 » 技术交流区 » 系统软件 » 【转贴】四招轻松检测网内IP地址是否被占用
文物2 - 2006-5-24 13:43:00
网友提问:我是一家公司的员工,该公司有很多免费的资源,象什么软件呀,电影呀什么的。不过网络管理员对服务器进行了设置,不同IP地址对应的权限不一样,象我们这样的普通员工只能分配一般的IP地址,而经理级以上的人员获得的IP地址不同,权限上也相应的不同。公司仅仅是用IP地址区分权限而没有将其与MAC地址绑定,我们可以通过修改IP地址来轻松获得相应的高级权限,但是即便如此我们也不敢随意修改地址,因为如果碰巧公司经理也在上网,那么他会收到IP地址冲突的提示,那么有没有什么办法可以查看网内某IP地址是否已经被占用呢?那样就可以在该IP地址没被使用时通过修改IP地址来获得更高权限的目的。希望IT168的专家可以给予详细解答,最好多介绍几个方法,这样我就可以在某个方法失效后继续提高权限了。
    解答:公司的网络管理员就是管理网络的人员,那么如何有效的管理好网络呢?简单的说就是保证公司人员可以正常上网,服务器和网络设备运转正常;进一步说则要将网络权利化,什么网络权利化呢?也就是说公司各个计算机访问网络的权限是不同的,一些高级用户可以访问公司网络机密信息,而普通用户仅仅是使用网络,不能够偷看任何不符合他们权限的资源。

    网络权利化最简单的方法就是将权限和IP地址进行绑定,如果IP地址不符要求则无法访问资源。虽然这种权限与IP地址对应的方法是最简单最实用的,但是正如网友所提到的那样,任何一个员工都可以通过修改IP地址来获得相应的权限。

    那么在修改前我们通过什么方法来检测该IP地址是否已经被使用呢?笔者就自己经验为各位读者介绍几个方法。

    一,简单PING法:

    这个方法很简单,大家都知道网络中查看某个计算机是否在线的最好方法就是PING该计算机对应的IP地址。例如想查看192.168.1.1这台计算机是否已经在线,我们可以采取以下几步来完成。

    第一步:进入自己计算机的操作系统,也许你的IP地址是192.168.1.100,由于公司是权限和IP地址相对应,所以权限肯定不如192.168.1.1高。通过任务栏的“开始->运行->输入CMD”进入命令行模式。

    第二步:在命令行模式中我们只需要输入ping 192.168.1.1即可。(如图1)


图1


    如果ping的通就说明该IP地址对应的计算机已经在线,如果这时我们修改自己的IP地址为该IP的话,对方计算机上就会出现IP地址冲突的提示,我们的权限提高秘密就会被发现。



    二,ARP缓存法:

    有一定基础的网络管理员都知道IP地址是属于OSI七层模型中的第三层网络层,如果仅仅使用ping法来查找网络中存在的计算机是不科学的,因为很多时候当本地计算机开启了防火墙或者将ICMP包过滤的话,使用ping是无法返回成功请求的,也就是说如果我们按照上面介绍的方法ping了对方IP地址不通,对方仍然可能会在线。那么有没有什么更可靠的方法呢?通过ARP缓存可以解决这个问题。

    ARP协议是工作在OSI七层模型中的第二层,因此即使我们用防火墙或者过滤包的方法也无法禁止ARP的查看,远程计算机不返回PING成功的消息但会告诉本地计算机该IP地址对应的MAC地址。这样我们就可以通过ARP缓存信息来查看了。如果能看到该IP地址对应了MAC地址说明该计算机在线,相应的MAC地址没有出现在ARP缓存表中则表明该计算机不在线。具体方法如下。

    第一步:仍然按照上面介绍的PING法来检测某IP地址的计算机是否在线。

    第二步:在PING返回信息为不通的情况下,输入arp -a来查看本地ARP缓存列表,看对应的IP是否得到了MAC地址信息。(如图2)


图2


    第三步:在ARP缓存列表中一共有三列,第一列为IP地址,第二列为MAC地址。如果PING不通但是能够获得该IP对应的MAC地址的话说明该计算机仍然在线。这时我们也不能通过修改IP来提高权限,会被对方发现。最后一列是ARP信息,分为动态获得和静态获得IP两种方法。

三,批量缓存法:
    上面介绍的方法一次只能检测一个IP地址,如果想查看多个IP该怎么操作呢?或者说想查看本地网络中究竟有哪些地址在线该如何设置呢?

    (1)老方法一个一个地址的ping虽然可以查看但是太麻烦了,严重影响了办事的效率。

    (2)批处理法:

    这里我给大家做了一个脚本,通过这个脚本我们可以自动检测网络中的计算机,查看哪些IP地址在线。例如我们要查看192.168.1.*这个网络中有哪些地址在线,按下面步骤完成。

    第一步:在桌面上点鼠标右键建立一个新的文本文件。

    第二步:将如下代码复制到该文本文件中。
    FOR /L %%i IN (0,1,255) Do ping 192.168.1.%%i -n 1
    arp -a -> IP.txt

    第三步:保存退出后将该文本文件修改后缀名为.bat。这样生成一个批处理文件。

    第四步:双击这个批处理文件将自动搜索192.168.1.*这个网络中的所有IP,并且将发现出的ARP信息都保存到ip.txt文件中。(如图3)


图3


    第五步:扫描完毕后我们直接查看ip.txt文件就可以看到究竟有哪些IP地址已经被使用了。该文件保存的是网络中所有计算机IP地址以及对应的MAC地址等信息。

    小提示:

    该方法对于装了防火墙无法ping到的情况同样适用。因为该原理是向某一网段内所有IP地址发送一个icmp包,也许对方计算机屏蔽了ICMP包但不要紧,因为他一定会回应一个mac地址的包给源计算机,这样用arp -a察看本地的arp缓存就能看到他的IP地址跟MAC地址了。

    另外在扫描过程中如果你想中断的话可以使用ctrl+c命令,也许你觉得设置到批处理文件中过于麻烦想直接通过命令行模式中的指令来完成扫描任务的话,只需要将命令进行简单修改即可。先输入FOR /L %i IN (0,1,255) Do ping 192.168.1.%i -n 1来扫描,完成后输入arp -a -> IP.txt命令保存信息。区别就是保存在批处理文件中需要是%%i,而命令直接输入法只需要%i即可。



    四,工具法:

    由于网络中有很多工具可以帮助我们来扫描网络,这里就不详细说明了,总之使用工具法会让我们扫描工作事半功倍,但是需要我们额外安装程序。这里推荐几个笔者使用起来不错的小软件——扫描器类有superscan和XSCAN,网络管理工具有lanhelper。感兴趣的读者可以自行尝试。当然对于有一定基础的网络管理员来说,直接安装个sniffer软件到本地计算机然后监视一段时间网络中的数据包也可以实现上面提到的功能。

    总结:

    解决这个网友提问的关键就是要了解ARP工作的机理,ping不通但是使用arp -a的时候还是能够看到那个ip的mac地址,只要他开着机。
1
查看完整版本: 【转贴】四招轻松检测网内IP地址是否被占用