我正在查看1997 年发布的nmap的源代码,我注意到这段代码对我来说看起来有点奇怪:
int i=0, j=0,start,end;
char *expr = strdup(origexpr);
ports = safe_malloc(65536 * sizeof(short));
i++; /* <<<<<< */
i--; /* <<<<<< */
for(;j < exlen; j++)
if (expr[j] != ' ') expr[i++] = expr[j];
expr[i] = '\0';
Run Code Online (Sandbox Code Playgroud)
为什么你们会i++;然后i--;紧跟其后?i是0,则i++轮流i到1。在那之后,i--变成i到0。
链接到原始源代码。搜索:
i++;
i--;
Run Code Online (Sandbox Code Playgroud)
谁能解释一下这是干什么用的?
我需要以最快的方式使用Nmap在同一扫描中检索TCP和UDP端口.我会尝试更好地解释它.如果我使用最常见的命令:
nmap 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
它只检索TCP端口,而且速度非常快.
如果我使用以下命令:
nmap -sU 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
它只检索UDP端口并且它非常快(不是那么快但仍然如此).
我的问题:是否有两个命令的组合?我试过:
nmap -sU -sS 192.168.1.1
nmap -sU -sT 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
但它们很慢.
我正在使用Nmap 5.51,有什么建议吗?
我是bash脚本的新手,我正在努力让这个工作:
扫描IP范围以查找打开端口80的设备...我认为它必须如下所示:
#!/bin/bash
echo -----------------------------------
for ip in 192.168.0.{1,.255}; do
nmap -p80 192.168.0.1
if #open; then
echo "{ip} has the port 80 open"
else
#do nothing
fi
done
echo -----------------------------------
exit 0
Run Code Online (Sandbox Code Playgroud)
我也想看到这样的结果:
-----------------------------------
192.168.0.1 has the port 80 open
192.168.0.10 has the port 80 open
192.168.0.13 has the port 80 open
192.168.0.15 has the port 80 open
-----------------------------------
Run Code Online (Sandbox Code Playgroud)
(所以没有错误或nmap正常输出..)
有人可以帮助我吗?
我想Nmap::Parser用来将nmap扫描的XML输出转换为CSV文件,我一开始就遇到了问题.
解析小TCP/UDP扫描工作正常,但是当我尝试转换更大的文件(例如,20 MB)时,尤其是打开过滤所有65535 UDP端口的文件时,我得到了分段错误.
问题似乎是"parsefile"方法.
我在Linux和Mac OS X上尝试了不同版本的Perl 5.10/5.14,结果相同.请参阅下面的代码段.
#!/usr/bin/env perl
use strict; use warnings;
use Nmap::Parser;
my $np1 = new Nmap::Parser;
my $xmlin = $ARGV[0];
sub read_file {
$np1->parsefile($xmlin);
for my $host ($np1->all_hosts()) {
for my $port ($host->udp_ports()) {
print $host->ipv4_addr()." ".$port."\n";
}
}
}
&read_file;
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用nmap扫描大量域名.我使用以下命令:
Nmap -PN -p443 -sS -T5 -oX out.xml -iL in.csv
Run Code Online (Sandbox Code Playgroud)
我收到以下警告:
Warning: xx.xx.xx.xx giving up on port because retransmission cap hit (2).
Run Code Online (Sandbox Code Playgroud)
为什么会这样?如何解决这个问题?
启动命令> nmap后出错
dnet: Failed to open device eth0 after installing NMAP.
QUITTING!
Run Code Online (Sandbox Code Playgroud) 我试图检测我的iPhone是否与我的Raspberry Pi在同一网络中.我想在家里执行脚本,我的iPhone在我的局域网中注册.
似乎当手机处于待机状态时,甚至找不到iphone同步端口(6207/tcp)."/ usr/bin/nmap -n -sT -p62078 [我的手机的本地IP]"显示没有主机.我想知道还有什么我可以扫描的.显然,手机处于在线状态并准备接受正面通话(通过3G停用的数据).我可以用我在Raspberry Pi上使用的avahi来完成某些事情,或者还有其他方法.
这是Ubuntu 12.04 env.我在盒子上的端口8020上运行TCP服务:
我的问题是:
为什么端口8020在nmap中没有被发现作为开放端口,而nestat说它正在监听?
如果我跑
netstat -tuplen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 127.0.0.1:9001 0.0.0.0:* LISTEN 0 10564 1917/python
tcp 0 0 127.0.0.1:8020 0.0.0.0:* LISTEN 117 29259 4448/java
Run Code Online (Sandbox Code Playgroud)
但如果我跑
nmap -v -sT 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2012-08-10 08:51 PDT
Initiating Connect Scan at 08:51
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 53/tcp on 127.0.0.1
Discovered open port 22/tcp on 127.0.0.1 …Run Code Online (Sandbox Code Playgroud) 当我尝试使用以下
nmap -p 443 -Pn --script=ssl-cert ip_address
内容时,出现以下错误:
Starting Nmap 7.70 ( https://nmap.org ) at 2019-06-04 15:20 UTC
NSE: failed to initialize the script engine:
could not locate nse_main.lua
stack traceback:
[C]: in ?
QUITTING!
Run Code Online (Sandbox Code Playgroud)
的响应nmap --version
是
Nmap version 7.70 ( https://nmap.org )
Platform: x86_64-alpine-linux-musl
Compiled with: liblua-5.3.5 openssl-1.1.1a libssh2-1.8.0 libz-1.2.11 libpcre-8.42 libpcap-1.9.0-PRE-GIT nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select
Run Code Online (Sandbox Code Playgroud)