背景: 产品界面提供 ip 修改功能,并且在保存的时候会去测试该 ip 是否被占用(原理:ping 得通表示被占用,ping 不通则表示可以使用)
问题: 如果目标 ip 在 ping 测试的时候没有被 ping 通,但该 ip 实际已经已经被其他主机占用,且该主机开启禁 ping 选项,则会出现误判导致产品的 network 服务起报错不来( CentOS 7 )
尝试: 我有尝试用 nmap 来扫描指定 ip,但是耗时较长且效果不好
不知道各位有什么解决方案没

背景: 产品界面提供 ip 修改功能,并且在保存的时候会去测试该 ip 是否被占用(原理:ping 得通表示被占用,ping 不通则表示可以使用)
问题: 如果目标 ip 在 ping 测试的时候没有被 ping 通,但该 ip 实际已经已经被其他主机占用,且该主机开启禁 ping 选项,则会出现误判导致产品的 network 服务起报错不来( CentOS 7 )
尝试: 我有尝试用 nmap 来扫描指定 ip,但是耗时较长且效果不好
不知道各位有什么解决方案没
1 lhx2008 Feb 29, 2020 via Android 没看懂这个是什么骚操作 |
2 BingoXuan Feb 29, 2020 要不试一下 arp ? |
3 xratzh Feb 29, 2020 没看懂意思,猜一下答案: ssh 试试? ip 没被占用和 ip 占用后,ssh 的回传信息不一样 |
4 ThirdFlame Feb 29, 2020 nc 一下这个 ip 某个端口(端口开不开放都无所谓,开放更好,就直接连上了)。如果不开放次端口, 你会发现存活的 和 不存活的错误代码不同。端口开不开放都无所谓。 但是如果主机或者网络设备专门设置的有 drop 规则,那么此方法无效。 |
5 singerll Feb 29, 2020 via Android 云平台分资源时用的吗?。。。。个人感觉没啥办法,考虑极端下别人防火墙全开,只出不进的情况。 话说没有元数据库吗? |
6 villivateur Feb 29, 2020 tcping 试试 |
7 binux Feb 29, 2020 via Android 既然 IP 修改功能是你产品提供的,用没有你自己不知道? |
8 zmj1316 Feb 29, 2020 via Android 同网段的话,能不能用 arp 扫一下? |
9 gamexg Feb 29, 2020 看意思是同网段,那么 arp 就行 |
10 yubai9366 OP @ThirdFlame 这个方法有效,测了十几台机器都可以用,不过还是得加个异常判断回滚机制,虽然我这边主机群应该都是常规配置,但是还是得上个保险 |
12 billlee Feb 29, 2020 arping |
13 trepwq Feb 29, 2020 via iPhone @ThirdFlame 都禁 ping 了,肯定有防火墙规则了,估计不行 |
14 ThirdFlame Feb 29, 2020 @trepwq 你试试就知道了。 防火墙好多是 deny 规则,而不是 drop 规则。nc 连过去 错误代码是不一样的。 |
15 trepwq Feb 29, 2020 via iPhone @ThirdFlame 我知道不一样,我一般都是用 drop,哈哈 |