我们公司有一个IDC(互联网数据中心),在我们的IDC里,有很多台主机,每台主机有1-3个IP。
有一种情况,比如一台主机有3个IP(例如102.23.33.1
-> 102.23.33.3
)。 (意思是在主机中,已经配置了IP)
如果主机只用的话102.23.33.1
,还有free掉的102.23.33.2
和102.23.33.3
。我们想找出免费的IP。
我怎样才能做到这一点?我尝试使用 forloop 来 ping 整个 IP,但这并不准确,因为某些主机因ping
.
编辑
我的意思是主机如果有3个IP,并且都可以ping通它们,但是主机只使用第一个IP与公共网络连接,我如何找到其他2个IP主机不使用(或不经常使用) )?
编辑2
我的意思是 IP 全部在操作系统上配置,但可能并未实际使用它们。
编辑-3
那么,前面的一切,可以理解如下:
我有一个Router,它下面有很多主机,每个主机都有一些IP,我如何记录每天经过Router的IP。
有没有一个工具可以记录通过路由器的IP?或者我怎样才能实现我的要求?
答案1
这会将日志记录规则添加到 iptables FORWARD 链中:
# iptables -I FORWARD -j LOG --log-prefix 'MYIPS: '
这将搜索匹配的数据包:
# grep MYIPS /var/log/syslog
文件名可能取决于您的 Linux 发行版。
这会生成路由器中转发链看到的唯一 IP 地址列表:
# grep -oE '(SRC|DST)=[0-9.]*' /var/log/syslog | sed 's/.*=//' | sort -u
答案2
还是不清楚。你的路由器是Linux机器吗?或者网络设备?如果您使用 DHCP 分配 IP 地址,则可以检查 dhcp 服务器上的 dhcp 租约列表。这会更好地帮助你。