科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道网管教你轻松检测网内IP地址是否被占用

网管教你轻松检测网内IP地址是否被占用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

有时是在局域网内新增机器,但新增机器的IP地址设置是个问题,该网段内到底有哪些地址还未分配出去呢?总不能一台一台机器的IPCONFIG吧!那工作量可不小。

作者:zdnet安全频道 来源:论坛整理 2008年11月3日

关键字: 网络管理 IP地址

  • 评论
  • 分享微博
  • 分享邮件

    有时是在局域网内新增机器,但新增机器的IP地址设置是个问题,该网段内到底有哪些地址还未分配出去呢?总不能一台一台机器的IPCONFIG吧!那工作量可不小。还有一种情况就是,网络管理员在服务器端做了一些设置,有些IP地址可以访问Internet,有些IP地址不能访问Internet,因此这时候想访问Internet,就必须把自己的IP地址改成网管设置的可以访问Internet的范围内才可以。无论是哪一种情况,首先我们都必须要知道哪个地址尚未使用,那我们又怎样才能知道呢?下面列举出一些常用的方法,掌握其中的一种或者几种,上述问题就可以轻松解决了。

  一、 最直接也是最适用的IP地址设置法

  大家都知道,同一个IP地址在同一个网段内只能被使用一次,如果有两台机器的IP地址是一样的,这样网络设置在进行数据传输的时候就会出错,并且在客户端也会发生冲突,并且会给出提示。针对网络访问的这一特性,我们只要将自己的IP地址进行适当的设置,就可以知道某一IP地址有没有被使用了。

  打开“本地连接 属性”对话框,双击“Internet 协议(TCP/IP)”项,在打开的“Internet 协议(TCP/IP) 属性”对话框中,设置一个想要使用的IP地址(如图1)。

   


图 1

    
    单击“确定”按钮之后,如果没有任何提示消息,则表示所设置的IP地址未被使用。如果所设置的IP地址已经被使用,这时会弹出“刚配置的静态IP地址已在网络上使用,请重新配置一个不同的IP地址”提示信息(如图2),并且在正在使用该IP地址的机器上也会弹出IP地址冲突的提示(如图3)。

 

图 2

   



图 3

    
    这样的话就表示该IP地址被占用了,需要更换其他地址再次尝试。不过这种方法只适合网管理员使用,如果是非网络管理员想通过更改IP地址来上网的话就不可行了,因为更改后,如果地址已经被使用,对方机器上就会出现提示信息,这样就容易被发现了。

  二、用来测试线路的Ping

  Ping命令应该是广大网络管理员最为熟悉的了,虽然Ping的基本功能是用来测试到目标主机之间的线路是否畅通,但通过不同的用法,我们常能利用Ping命令辅助解决很多网络故障。而这里就借用Ping命令来判断目标IP地址是否被使用。

  进入“命令提示符”窗口,执行“Ping 目标IP地址”命令,如果目标地址已经被使用,则会返回一个返回值(如图4),如果一直提示“Request timed out.”,则表示目标地址可能未被使用。
 
  

图 4

   三、用来解析地址的ARP

  虽然Ping未返回值,但是同样发生了一次地址解析,也就是说ARP协议同样工作了一次,大家都知道IP地址工作在OSI七层参考模型的第三层,而ARP协议是工作在第二层的。因此即使对方过滤了ICMP包,同样可以获取对方网卡的MAC地址。也就是说只要能获取对方网卡的MAC地址,则说明该IP地址已经被使用了。

  第一步:同样是先Ping想要查看的IP地址。

  第二步:Ping结束后,使用Arp –a命令查看本机的ARP缓存(如图5)。

 

   


图 5

    
    从上图中可以看出,首先Ping目标IP地址时,显示超时,但通过Arp命令查看ARP缓存时,可以查看到目标IP地址所对应的MAC地址,则说明该IP地址已经被占用。

  很明显如果使用该方法需要一次一次的Ping,然后再执行ARP命令,显然很麻烦,工作量太大,不过我们可以使用命令行提示符状态的For循环命令让这一过程自动执行,而我们只要一个结果就行了。

  这里最主要的是用到For命令的“/L”参数,该命令的具体语法如下:

  FOR /L %variable IN (start,step,end) DO command [command-parameters]

  该集表示以增量形式从开始到结束的一个数字序列。

  因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生序列 (5 4 3 2 1)。

  根据语法,我们需要执行的命令为:FOR /L %i IN (0,1,255) Do ping 192.168.1.%i

  其中“192.168.1.%i”需要根据自己的网段进行修改,然后再将ARP命令执行的结果导出到某一文本文件即可。另外如果想做成批处理文件的话,需要做一点小的修改,即定义变量要用“%%i”的形式,最终的批处理文件内容如下:

  FOR /L %%i IN (0,1,255) Do ping 192.168.1.%%i

  Arp –a >arp-mac.txt

  执行该批处理命令后,会自动依次Ping该网段内的所有IP地址(如图6),并将最后ARP命令执行的结果返回到arp-mac.txt文本文件中。

  

图 6

    小提示:

  1.默认情况下Ping会发送四次数据包,等整个网段都Ping完,显然时间会比较长,因此可以在第一条命令后面再加上“n 1”参数表示每次只发送一次数据包。

  2.批处理文件不能以“Ping”、“Arp”等DOS命令命名,否则在执行的过程中,可能会出错。

  四、小结

  上面一共提出了几种大的思路方法,不过个人觉得最为常用、实用的还是第三种,也因此,第三种方法笔者讲得最为详细,希望通过其中的一种或者几种方法,可以帮助大家很快的找出网内未使用的IP地址,从而解决问题。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章