Доброе время суток, подскажите пожалуйста после скана выдает результат в xml формате в таком виде: <?xml version="1.0"?> <!-- masscan v1.0 scan --> <?xml-stylesheet href="" type="text/xsl"?> <nmaprun scanner="masscan" start="1480103894" version="1.0-BETA" xmloutputversion="1.03"> <scaninfo type="syn" protocol="tcp" /> <host endtime="1480103894"><address addr="118.192.160.147" addrtype="ipv4"/><ports><port protocol="tcp" portid="8000"><state state="open" reason="syn-ack" reason_ttl="104"/></port></ports></host> <host endtime="1480103895"><address addr="39.177.186.8" addrtype="ipv4"/><ports><port protocol="tcp" portid="8000"><state state="open" reason="syn-ack" reason_ttl="45"/></port></ports></host> <host endtime="1480103895"><address addr="14.154.17.140" addrtype="ipv4"/><ports><port protocol="tcp" portid="8000"><state state="open" reason="syn-ack" reason_ttl="44"/></port></ports></host> <host endtime="1480103895"><address addr="118.192.184.18" addrtype="ipv4"/><ports><port protocol="tcp" portid="8000"><state state="open" reason="syn-ack" reason_ttl="106"/></port></ports></host> <runstats> <finished time="1480470645" timestr="2016-11-30 03:50:45" elapsed="366752" /> <hosts up="1427191" down="0" total="1427191" /> </runstats> </nmaprun> Знакомый говорил возможно c помощью grep перегнать в готовый txt файл прямо в линуксе. Но все что я нашел было без портов. Мне нужно именно сохранить чтобы результат получился формата ip : port Или через ParserXML.exe тоже подойдет. Помогите пожалуйста!
не специалист по лине и его тулзам, потому не очень эстетично, но работать должно: Code: grep -Eo "addr=\"([^\"]+).*.portid=\"([^\"]+)" input.xml | grep -oP "\b[0-9]{1,3}(\.[0-9]{1,3}){3}\b|\b[0-9]{4,5}\b" | xargs -n 2 | sed 's/ /:/g' > results.txt