如何生成随机IP地址

Lan*_*nes 0 shell ip random nmap

$ nmap -n -iR 0 -sL > RANDOM-IPS-TMP.txt
$ grep -o "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" RANDOM-IPS-TMP.txt |
      egrep -v "10.*|172.[16-32].*|192.168.*|[224-255].*" > RANDOM-IPS.txt
egrep: Invalid range end
$ 
Run Code Online (Sandbox Code Playgroud)

如何在私有 IP 地址范围和多播 IP 地址范围之外生成随机 IP 地址?

cjm*_*cjm 7

您误解了正则表达式语法。 [16-32]并不意味着“匹配 16、17、... 或 32”。这意味着“匹配 1 或 2 或 6-3 范围内的一个字符”(这不是有效范围,因此会出现错误)。

可以编写一个正则表达式来匹配一系列整数,但它很复杂且容易出错。在您的情况下,使用nmap's--exclude选项排除您不想要的范围会容易得多。它理解 CIDR 表示法,这是一种更简单的方法来描述您正在谈论的范围。

nmap -n -iR 0 --exclude 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224-255.-.-.- -sL >RANDOM-IPS.txt
Run Code Online (Sandbox Code Playgroud)

您没有提到环回块 (127.0.0.0/8),但您可能也应该排除它。