Portál AbcLinuxu, 16. července 2025 21:10


Dotaz: jak rozparsovat vystup iptables?

1.1.2004 14:33 zdenek
jak rozparsovat vystup iptables?
Přečteno: 87×
Odpovědět | Admin
ahoj, potreboval bych v php do pole rozlozit vystup prikazu iptables-save

[1623:188183] -A IN_192.168.1.10 -j RETURN

potrebuju zvlast prvni a druhe cislo a zvlast tu ip adresu i s tim IN_ predem dik
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.1.2004 14:56 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše jak rozparsovat vystup iptables?
Odpovědět | | Sbalit | Link | Blokovat | Admin
explode() ti rozdělí ,zvlášť`... ale jinak moc nechápu, co chceš. Výstup iptables-save může obsahovat cokoli, co mohou být parametry příkazu iptables, takže např. -A INPUT_tcp -p tcp -m tcp --sport 1024:65535 -m multiport --dports 22,80,1720 -j LOG_ACCEPT_tcp-pub a spol. Abys to správně parsnul, musíš si napsat parser ekvivalentní parseru optionů iptables. Nebo někde najít -- vzhledem k tomu, kolik existuje různých nástrojů na konfiguraci fw, to už asi někdo napsal ... kromě toho existuje nějaký parser přímo v libiptables, ale nevím jak to přesně funguje s extensions, a zejména jak bys ho symsluplně použil v PHP.
1.1.2004 16:28 zdenek
Rozbalit Rozbalit vše jak rozparsovat vystup iptables?
no explode mi to rozdeli podle mezery (nebo jineho znaku). ja ty cisla v hranatejch zavorkach potrebuju zvlast. jinak po iptables-save -t mangle -L | grep RETURN to obsahuje pouze radky podobneho razeni a z tech ja potrebuju dostat to co jsem psal.
1.1.2004 16:48 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše jak rozparsovat vystup iptables?
mno, tak ten první prvek matchneš přes preg_match na \[(\d+):(\d+)\] a první skupina bude první číslo, druhá bude druhé číslo
1.1.2004 19:25 zdenek
Rozbalit Rozbalit vše jak rozparsovat vystup iptables?
tak jsem to testnul, ale pise mi to porad Warning: Delimiter must not be alphanumeric or backslash. tak sem zkousel ruzny kombinace ^,$ ale akorat phpko vypisovalo novy a novy chyby.
1.1.2004 21:21 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše jak rozparsovat vystup iptables?
Mně to funguje...
  $a = '[1623:188183] -A IN_192.168.1.10 -j RETURN';
  $x = preg_split('/\\s+/', $a);
  preg_match('/\[(\d+):(\d+)\]/', $x[0], $matches);
  echo 'matches[0] = ' . $matches[1] . ', matches[1] = ', $matches[2];
vypíše matches[0] = 1623, matches[1] = 188183
1.1.2004 21:22 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše jak rozparsovat vystup iptables?
A nenech se zmást tím, že $matches[1] označuji v tom výpisu jako $matches[0] ;-)
1.1.2004 22:08 zdenek
Rozbalit Rozbalit vše jak rozparsovat vystup iptables?
jo to uz chodi. moc diky

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.