将网络作为变量传递给 nmap 会导致“解析失败”

问题描述 投票:0回答:1

当我使用变量将 IP 网络传递给 nmap 来简化常规任务时,出于某种原因,nmap 不会解释最后一个子网掩码的 /XX。

这是变量(它们存储在我的 .zshrc 中)。请注意,每个“区域”包含两个 /24 网络。

zone1="192.168.10.0/24 192.168.20.0/24"
zone2="192.168.50.0/24 192.168.60.0/24"

这些变量的回显看起来完全正常,并且正是预期的那样。

$ echo $zone1
192.168.10.0/24 192.168.20.0/24

我像这样将它们传递给 nmap

# sudo nmap --options, blah $zone1 $zone2

nmap 的错误是:

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-04 12:56 CEST
Failed to resolve "192.168.10.0/24 192.168.20.0".
Failed to resolve "192.168.50.0/24 192.168.60.0".
etc...

请注意,第二组 IP 地址永远看不到 /24 掩码。不管出于什么原因,它被切断了。 nmap 解析器似乎将其解释为其他内容,将其删除,然后 192.168.20.0(例如)不再是有效地址。

我尝试将 .zshrc 中的变量声明从简单撇号 ('') 更改为双撇号 ("")。我尝试在 /24 之前添加反斜杠以防止错误解析。什么都不起作用。这是怎么回事?

variables zsh nmap
1个回答
0
投票

我不知道

nmap
,但也许它无法处理中间有空格的目标规范。 我会传递变量,以便
nmap
可以看到地址的 4 个单独的参数,即

nmap .... ${(z)zone1}  ${(z)zone2}
© www.soinside.com 2019 - 2024. All rights reserved.