Парсинг xml результат masscan

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SipSik, 27 Feb 2018.

  1. SipSik

    SipSik New Member

    Joined:
    8 Nov 2017
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Доброе время суток, подскажите пожалуйста после скана выдает результат в 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 тоже подойдет. Помогите пожалуйста!
     
  2. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
  3. SipSik

    SipSik New Member

    Joined:
    8 Nov 2017
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Там нужны голые адреса и решение там представленно а мне нужно с портами все сохранить.
     
  4. spiner

    spiner Member

    Joined:
    8 Jul 2015
    Messages:
    74
    Likes Received:
    56
    Reputations:
    4
    не специалист по лине и его тулзам, потому не очень эстетично, но работать должно:
    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
    
     
    SipSik likes this.