如何在网络上查找未使用的 IP 地址?

如何在网络上查找未使用的 IP 地址?

我只是想找出网络上未使用的 IP 地址。我认为使用 nmap 是可以的。有人能告诉我方法吗?

笔记:

我只需要免费的 IP 列表。

答案1

快速扫描仪arp 扫描它使用地址解析协议“查看”网络上的其他机器。它还会返回 MAC 地址并尝试确定网络适配器的制造商。

使用示例(如果需要可替换wlan0eth0):

$ sudo arp-scan -I wlan0 192.168.1.0/24
Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.6 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.10    00:90:f5:33:e2:f2       CLEVO CO.
192.168.1.254   00:14:7f:72:cd:05       Thomson Telecom Belgium

2 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.6: 256 hosts scanned in 1.406 seconds (182.08 hosts/sec).  2 responded

请注意,此实用程序仅报告已打开电源的机器。ping可以阻止,但arp-scan不能阻止,因为机器需要与网络上的其他机器交互。要确保 IP 未被使用,您最好查看路由器(用于静态/动态地址)和 DHCP 服务器(用于动态地址)。

答案2

sudo nmap -sP -PR 192.168.0.*(或者无论您的网络是什么)都可以。

要安装它,请使用sudo apt-get install nmap

来源:服务器故障

刚刚测试过,效果很好,包括模糊主机,您需要添加 sudo 才能使用该-PR选项。

答案3

我发现 fping 很有用;除其他外,它会 ping 一系列地址并列出哪些是“活动的”以及哪些是“不可达的”。默认情况下未安装 fping。

sudo apt-get install fping

简单的方法就是在一系列地址上运行它。

fping -g 192.168.0.2 192.168.0.254 2>/dev/null

更复杂一点,生成一个未使用的 IP 列表。

fping -g 192.168.0.2 192.168.0.254 2>/dev/null | grep 'is unreachable' | cut -d ' ' -f 1 | sort -t '.' -k 4 -n

答案4

这应该在 bash 中正确执行:

#!/bin/bash

#setting language variables for subshell making sure we grep for the right word
LC_ALL=C
LANG=C

# retrieve IP from user input
read -p "Input your network (example: 192.168.0): " my_net

for i in $(seq 1 254);
do 
  ip="$my_net.$i"
  check="$(ping -c1 "$ip")"
  if [ "$(grep "Unreachable" <<<"$check")" != "" ]
  then
    echo "$ip is unreachable"
  fi
done

相关内容