- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 NMAP,在大型网络上运行扫描以查看打开的端口。输出文件是 2MB,但我想过滤掉所有端口关闭的所有 IP 地址。
Nmap scan report for 10.x.x.x
Host is up (0.048s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
23/tcp open telnet
Nmap scan report for 10.x.x.x
Host is up (0.046s latency).
All 1000 scanned ports on 10.x.x.x are closed
Nmap scan report for 10.x.x.x
Host is up (0.045s latency).
All 1000 scanned ports on 10.x.x.x are closed
应该输出到只输出到:
Nmap scan report for 10.x.x.x
Host is up (0.048s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
23/tcp open telnet
编辑
结果是这样的
Nmap scan report for 10.x.x.x
Host is up (0.048s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
23/tcp open telnet
Nmap scan report for 10.x.x.x
Host is up (0.046s latency).
All 1000 scanned ports on 10.x.x.x are closed
Nmap scan report for 10.x.x.x
Host is up (0.045s latency).
All 1000 scanned ports on 10.x.x.x are closed
有些换行符没有正确复制过来
编辑感谢大家。我看到 awk 非常棒而且很容易做到。
最佳答案
如我所见,您正在尝试对 nmap 输出应用一些智能过滤,而不仅仅是简单的“grep”。
由于您的 nmap 命令(根据您的评论而不是您的问题)指向子网而不是单个主机,因此您需要单独解释输出的每个部分。但是这种解释对于正则表达式来说太复杂了。 (使用 PREG 可能是可行的,但编写起来会非常困难,而且几乎不可能阅读。)像 awk
这样的工具是完成此任务的更好选择。
例如:
nmap 10.10.0.0/16 | awk '
/^Nmap scan report for/ {
if (open) {
print output;
}
output="";
open=0;
}
{
output=output $0 "\n";
}
$2 == "open" {
open=1;
}
END {
if (open) {
print output;
}
}
'
Awk 很容易阅读,但您应该知道它通过将每一行输入与看起来像 condition { action }
的表达式进行匹配来运行。如果条件评估为真,则执行操作。所以第一个有一个条件,它是一个用于查找主机部分开头的正则表达式,并且操作包含在花括号中。缺少第二个条件,因此假设所有行都为“真”。在处理完所有输入行后,最后一个条件匹配,并且在最后扫描的主机包含打开端口的情况下是必需的。
这种东西可以表达得更密集,但我写了很长时间,这样你就可以更容易地看到逻辑是如何工作的。练习会带来更严格的代码。
请注意,您可以将 awk 脚本放入一个单独的文件中,您可以使用 awk 的 -f
选项引用该文件。阅读the man page了解详情。
如果您不想将 awk 部分保留在它自己的文件中,您也可以将这整个东西放入它自己的 shell 脚本中。您应该能够很容易地找到看起来像什么的示例 - 无论如何,它超出了这个问题的范围。
关于sed - 使用 grep、awk 或 sed 过滤 nmap 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20221112/
问题出在哪里? import nmap 我安装了 nmap 和 python,当我使用 import nmap 时没有任何问题。但是在使用时: nmap.PortScanner() 抛出这个错误: T
出于某种原因,我无法在 python 上使用 nmap。我已将 python-nmap 作为库安装。每当我尝试使用 PortScanner() 时,都会收到路径错误,但我的计算机上安装了 nmap,而
我最近决定,因为我经常试验最新版本的 nmap,所以将其 SVN check out 保存在 ~/.nmap 中可能是个好主意安装并运行 svn up; make 使其保持最新状态。我将 ~/.nma
我刚开始学习nmap的使用这样做时,我无法找到有关特定命令的太多信息。 这是我正在使用的命令:nmap -sP 192.168.100.0/24扫描网络上已连接设备的列表。 虽然使用的 ip 地址是子
在我的 .vimrc 中有这些行 nmap :s :update nmap :set number! 没有前者映射,后者起作用,否则不起作用。为什么会这样? 最佳答案 问题是第二个映射以某种方式开始
当我将 python-nmap 库导入到我的解释器时: import nmap nm = nmap.PortScanner() nmap.PortScanner() 以某种方式向我显示以下错误。安装的
在某些 Android 设备上我遇到了这个错误: Unable to find nmap-services! Resorting to /etc/services Unable to open /et
在 Python 3.4 之前,您可以使用以下命令确定目标的操作系统Python如下: import nmap nm = nmap.PortScanner() scanner = nm.scan(IP
我正在尝试使用 nmap 确定特定 IP 地址的操作系统。到目前为止,这是我的代码: import java.io.*; public class NmapFlags { public stati
我有一个文本文件中的远程机器列表。我可以使用 nmap 知道他们的 MAC 地址吗? 最佳答案 如果您使用的是 nmap,MAC 地址是 只有如果您与目标位于同一网段,则可用。如果您以 root 身份
Phillips 有这些说明 (https://developers.meethue.com/develop/get-started-2/) 用于连接到/使用他们的 Hue 灯。显然,他们每个人都有一
我想以最快的方式审核我的大型网络的设备。我应该使用 Nmap::Parser或 Nmap::Scanner ? 我想创建一个返回 ping 以及相关操作系统足迹和标识的 IP 地址列表。 示例: pi
我需要为Nmap扫描指定特定的IP范围,例如: 192.168.1.140 - 192.168.3.255 如果我这样做: 192.168.1-3.140-255 不会扫描IP地址(例如192.168
在 vim 中我有这个 nmap nmap ,mu : marks ABCDEFGHIJKLMNOPQRSTUVWXYZ 如果我没有 Upper 标记并尝试 ,mu 我得到 E283: No mar
我们正在进行堆转储并有一个问题: jmap -dump:file=heapdump.hprof,format=b 如果您指定format=a,它将是 ascii 格式的使用消息 如果您指定format
我正在学习使用 nmap 和 zenmap 进行拼贴。我需要将结果保存到文件中。首先我认为我的代码有问题。然后我用cat,文件就保存好了。但我找不到它,它们不在我的主文件夹中,不在我的数据或其他任何地
Python 可以很好地导入 NMap,但是当我进行基本变量赋值时,它会返回一个错误: Traceback (most recent call last): File "", line 1, in
我正在尝试使用源代码安装来安装 Nmap-7.5,编译器说: NMAP SUCCESSFULLY INSTALLED 但是当我使用命令:nmap -v 时,系统说找不到命令 我发现 Nmap 已安装为
通过此代码,我可以获得主机名、使用的协议(protocol)、端口和端口状态。我怎样才能获得服务信息? for host in nm.all_hosts(): print('---------
当我扫描自己时,我经常会看到随机打开的端口: nmap -sT -T normal -p 1-65535 localhost 例如 43194/tcp open unknown 58167/tcp
我是一名优秀的程序员,十分优秀!