如何判断某一个IP地址是否被占用
背景
由于目前从事桌面云相关的工作,需要经常创建虚拟机以及为该虚拟机分配IP地址。在一个局域网中,我们的IP地址要求唯一性,如果设置的IP地址已经被利用,虚拟机就无法创建成功或者出现其他无法预料的事情。
那么我们应该用什么办法来判断某个IP地址是否已经被占用呢?我们我知道的有两个方法:
- ping命令
- arping命令
ping命令
从事IT工作的基本都知道这个命令,它用来判断目标地址网络通路是否正常以及对应的主机是否存在。例如:
如果使用ping 目标主机地址,提示无法访问目标主机,一般情况下,可表明这个IP地址没有被使用或者网络不通。但是,对方主机若开启了防火墙,我们使用ping命令也会提示“无法访问主机”,实际上该IP地址已经存在了,IP地址已经存在则无法创建虚拟机。此时,则需要使用arping命令了。
另外ping命令可以之window和linux系统均支持。
ARP地址解析协议
在linux系统下面,我们还可以使用arping命令来判断某个IP的地址是否被占用。该命令主要使用了地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
其主要过程如下:
- 主机发送信息时将包含目标IP地址的ARP请求包广播到网络上的所有主机;
- 目标主机的IP和APR请求包匹配时,目标主机返回对应的物理地址
- 主机收到返回消息后将该IP地址和物理地址存入本机ARP缓存中。
为了提高查询效率,本地的ARP缓存都会保留一段时间。下次请求时会直接查询ARP缓存以节约资源。我们可以使用命令arp -a
命令查询ARP缓存信息,例如:
arping命令
由于arping命令是基于ARP地址解析协议,我们可以在同网段中使用arping命令来判断目标主机是否存在,若存在目标主机会给出响应以及mac地址信息。
例如:
[root@xxxxx ~]# arping 103.29.xxx.xxx
ARPING 103.29.xxx.xxx from 103.29.71.92 eth0
Unicast reply from 103.29.xxx.xxx [F8:66:F2:xx:xx:41] 11.512ms
Unicast reply from 103.29.xxx.xxx [F8:66:F2:xx:xx:41] 11.966ms
Unicast reply from 103.29.xxx.xxx [F8:66:F2:xx:xx:41] 4.512ms
Unicast reply from 103.29.xxx.xxx [F8:66:F2:xx:xx:41] 5.966ms
^CSent 6 probes (1 broadcast(s))
Received 6 response(s)
以上信息表明103.29.xxx.xxx主机存在,我们不能再利用这个IP地址。否则表明这个IP地址在同网段中是没有被使用的。
如何判断某一个IP地址是否被占用相关推荐
- 阿里面试题-判断是不是一个IP地址的测试用例设计(Python实现)
写在前面 今天面试阿里巴巴,太紧张了,回答的不好,在此记录和分享 IP地址规则 0.0.0.0~255.255.255.255 由上面的规则我们可以划分四段A.B.C.D A段的测试用例设计(BCD的 ...
- 一个路由器两个网段互通_如何判断两个IP地址是否在同一个网段?什么是子网掩码?...
前几天咱们了解:三种方法告诉你项目超过255个摄像机怎么设置IP?什么是公网ip?什么又是内网ip?为什么ip地址通常以192.168开头? 也学习了:二.三层交换机与路由器的区别! 但是有好多人对I ...
- 怎么判断私网地址_如何判断一个IP地址是私有地址
如何判断一个IP地址是私有地址,首先,我们得先了解什么是私有地址.本文所指的IP地址,皆是IPV4. 一个IPV4地址,由四段组成,最大值为255,一个IP地址其实就是一个32位的bit串,每8位一段 ...
- 判断输入的IP地址是否合法
判断输入的IP地址是否合法,ip地址的值在0~255之间,先把输入的IP的地址转换为一个字符串. #define LEN (sizeof(xx)/sizeof(xx[0])) const char * ...
- 如何判断两个IP地址是不是处于同一网段?
个人理解,欢迎指正. 一.要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果-->网络号,如果网络号相同, 就在同一子网,否则,不在同一子网. 例:假定选 ...
- 怎样判断两个ip地址是不是在同一个网段中?
我们先来了解一下,判断两个ip地址是不是在同一个网段的方法. 要想判断两个ip地址是不是在同一个网段,只需将ip地址与子网掩码做与运算,如果得出的结果一样,则这两个ip地址是同一个子网当中. 例子: ...
- 如何判断两个IP地址是不是同一个网段(超实用)
IP地址 IP地址被用来给Internet上的电脑一个编号.大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信.我们可以把"个人电脑"比作"一台电话&qu ...
- 给一个IP地址,如何划分为几个子网?
1. 基本知识介绍 1.1网络中的每一个主机或路由器至少有一个IP地址: 在Internet中不允许有两个设备具有同样的IP地址: 1.2IP地址采用分层结构: IP地址是由网络号(net ID)与主 ...
- 教你如何判断两个IP地址,是否在同一个网段
目录 前言 一.什么是子网掩码? 二.如何根据掩码来确定ip地址网段 总结 前言 子网掩码的介绍以及如何根据掩码来确定IP地址网段. 一.什么是子网掩码? 子网掩码只有一个作用,就是将某个IP地址划分 ...
最新文章
- php计算属相,一个判断干支、属相和星座的php函数
- P1160 队列安排 链表
- 笔记本电脑u盘装linux系统,用U盘给Linux笔记本电脑重装Win7/XP系统的图文教程
- Source Insight checking for modified files 卡顿(Reload externally modified files automatically取消)(未解决)
- vmware workstation 上创建的centos 7.2 ,新添加一块网卡。无法找到配置文件。
- 形参与实参, 值传递与引用传递, ref参数与out参数的区别和联系?
- Travis CI 配置文件 .travis.yml 的语法介绍和一些用法举例
- 汇编语言-004(LABEL 、间接寻址、变址操作数、指针使用、TypeDef、LOOP、DWORD变量交换高位低位字)
- Tomcat 6、7在EL表达式解析时存在的一个Bug
- 两种解决Qt5显示中文乱码的方法(使用QStringLiteral和#pragma execution_character_set(utf-8)两种方法)
- SpringBoot2.x整合Redis数据库
- 下载百度文库的受限文件-冰点下载器
- python+appium出现selenium.common.exceptions.WebDriverException: Message: Method has not yet been imple
- java面试最后问面试官什么问题,详细说明
- 商业网站建设和运营的四度:Approachability、Usability、 Accessibility 和 Profitability...
- Unity 关于Toggle的ison默认没有显示监听结果的解决
- php文件上传代码dsn,数据源名称无效-使用php、PDO和DSN连接到MySQL
- 云南中考计算机操作题,2015年云南省初中信息技术会考操作题及解题步骤.ppt
- Java猿社区—log4j2一站式教程
- UnityShader水体渲染