Autor | Zpráva | ||
---|---|---|---|
Dulus Profil |
#1 · Zasláno: 22. 4. 2012, 12:24:03
zdravím
Takže spúšťam nmap na skenovanie siete a výstup nmap-u mám naparsovaný do premennej $lines . Čo je pre mňa dôležité v tomto výstupe je IP adresa a jej príslušné riadky v tvare napr: "22/tcp open ssh" Výstup nmap-u vyzerá cca tak ako je uvedené nižšie, jednotilivých ip a teda blokov výstupu tam môže byt aj viac nie iba dva Starting Nmap 5.00 ( http://nmap.org ) at 2012-04-19 20:08 CEST Interesting ports on 192.168.70.6: Not shown: 1022 closed ports PORT STATE SERVICE 22/tcp open ssh 23/tcp open telnet Interesting ports on 192.168.70.25: Not shown: 1021 closed ports PORT STATE SERVICE 21/tcp open ftp 80/tcp open http 443/tcp open https Nmap done: 256 IP addresses (2 hosts up) scanned in 7.27 seconds môj kód, ktorý toto parsuje je > $port_mappings = preg_grep('!^\d+/\S+ +\S+ !', $lines); // get the interesting lines $parsed_port_mappings = array(); foreach($port_mappings as $port_mapping) { preg_match('!^(?P<port>\d+)/(?P<protocol>\S+) +(?P<state>\S+) +(?P<service>\S+)!', $port_mapping, $parsed_port_mappings[]); } ak chcem pristúpiť ku nejakej konkrétnej hodnote tak $parsed_port_mappings[X]['Y'] kde X je čislo riadku v tvare "cislo_portu/protokol stav nazov" a Y je jedna z možností port/protocol/state/service . Problém je že neviem, ktoré riadky patria ku ktorej ip adrese a teda by sa mi hodil nejaký systém ako sparsovat ip adresy (nejaký regex [tie mi veľmi nejdú]) a ku nemu prislúchajúce riadky v tvare "cislo_portu/protokol stav nazov". Predtym tam bol vždy iba jeden blok výstupu a to nebol problém, lebo IP adresu som mal z vstupného poľa. teraz tam môže byť tých blokov viac a preto musím parsovať už aj IP z výstupu. Snáď sa chápeme. Proste potrebujem sparsovat tie ip adresy a ku nim nejak potom roztriediť dané prislúchajúce riadky s tými portami. Parsovanie tých riadkov mi funguje v pohode, ale neviem nejak sparsovat tie ip adresy a náslende k nim priradiť prísluchajúce riadky. Dik za pomoc dopredu. |
||
Davex Profil |
#2 · Zasláno: 22. 4. 2012, 21:14:03
Nestálo by za zvážení, zvolit pro výstup nmapu nějaký lépe strojově zpracovatelný formát (třeba XML)?
|
||
Dulus Profil |
Keby to bolo na mne tak urcite pouzijem XML (jednoduchsie a menej pripadnych chyb), ale zadavatel si urcil ze chce mat "kompatibilitu s vystupmi skopirovanymi s konzoly" teda v tvare aky je tu. Preto tie komplikacie.
Ale myslim, ze sa mi to uz podarilo ako tak vyriesit, skusim este potestovat a ked tak tu pastnem riesenie, lebo funguje to ale niekde tam mam v cykloch nejaku chybu co mi robi prazdne pozicie v poli. |
||
Časová prodleva: 12 let
|
0