2010-06-13 21 views
0

我正在使用正則表達式來分析NMAP輸出。我想要打開相應端口的IP地址。現在我已經這樣做的一個很天真的方法:awk輸出的連接

awk '/^Scanning .....................ports]/ {print substr ($2,1,15);}' results.txt 
awk '/^[0-9][0-9]/ {print substr($1,1,4);}' results.txt | awk -f awkcode.awk 

其中awkcode.awk包含的代碼中提取號碼的開出的子串。 第一行打印出所有ips,第二行給我端口。我的問題是我希望他們映射到對方。有沒有辦法做到這一點?即使是一個sed腳本也可以。

+0

這將有助於如果你顯示了'nmap'命令的一些輸出(或者你至少使用了什麼選項)。 – 2010-06-13 13:00:36

+0

你應該提供關於這個文件的詳細信息(我可以運行nmap,但是太懶,並且使用哪些選項?),並且添加awk和sed標記 – ShinTakezou 2010-06-13 13:10:19

+0

是的,請提供輸出和請求的輸出 – Drakosha 2010-06-13 13:22:25

回答

1

你可能會發現使用 「的grepable」 輸出格式更容易解析:

nmap -oG - -v -A 192.168.0.1-254 

輸出示例:

主持人:192.168.1.1(富)狀態:UP 主機:192.168.1.1(foo)端口:22/open/tcp // ssh // OpenSSH 5.1p1 Debian 6ubuntu2(protocol 2.0)/,80/open/tcp // http // Apache httpd 2.2.12((Ubuntu)) /,139/open/tcp // netbios-ssn // Samba smbd 3.X(workgroup:BAR)/,445/open/tcp // netbios-ssn // Samba smbd 3.X(workgroup:BAR)/, 7100/open/tcp // font-service // X.Org X字體服務器/ I gnored狀態:關閉(995)

或者,如果你有一個XML解析器,使用XML輸出格式:

nmap -oX - -v -A 192.168.0.1-254 

輸出示例:

<?xml version="1.0" ?> 
<?xml-stylesheet href="file:///usr/share/nmap/nmap.xsl" type="text/xsl"?> 
<!-- Nmap 5.00 scan initiated Sun Jun 13 08:11:32 2010 as: nmap -oX - -v -A 192.168.1.1-254 --> 
<nmaprun scanner="nmap" args="nmap -oX - -v -A 192.168.1.1-254" start="1276434692" startstr="Sun Jun 13 08:11:32 2010" version="5.00" xmloutputversion="1.03"> 
... 
... 
<host starttime="1276434692" endtime="1276434775"><status state="up" reason="syn-ack"/> 
<address addr="192.168.1.1" addrtype="ipv4" /> 
<hostnames><hostname name="foo" type="PTR" /></hostnames> 
<ports><extraports state="closed" count="995"> 
<extrareasons reason="conn-refused" count="995"/> 
</extraports> 
<port protocol="tcp" portid="22"><state state="open" reason="syn-ack" reason_ttl="0"/><service name="ssh" product="OpenSSH" version="5.1p1 Debian 6ubuntu2" extrainfo="protocol 2.0" ostype="Linux" method="probed" conf="10" /><script id="ssh-hostkey" output="1024 1a:2b:4d:5e:6f:00:f1:e2:d3:c4:b5:a6:e2:f3:fe (DSA)&#xa;2048 fa:eb:dc:cd:be:af:a0:75:65:8a:52:7d:11:22:33:44 (RSA)" /></port>