Net :: flow.

NET :: Flow ist ein Perl-Modul, mit dem NetFlow / IPFIX-Datagramme decodiert und kodiert.
Jetzt downloaden

Net :: flow. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Atsushi Kobayashi
  • Website des Verlags:
  • http://search.cpan.org/~akoba/Net-Flow-0.03/lib/Net/Flow.pm

Net :: flow. Stichworte


Net :: flow. Beschreibung

NET :: Flow ist ein Perl-Modul, mit dem NetFlow / IPFIX-Datagramme decodiert und kodiert. NET :: Flow ist ein Perl-Modul, das zum Dekodieren und Codieren von NetFlow / IPFIX-Datagrammen. Es kann den NetFlow V5, V9 und IPFIX analysieren. Wenn es NetFlow V9 / IPFIX-Datagramme empfängt, können mehrere Vorlagen von NetFlow / IPFIX als Array-Referenz $ TEMPLATEARRAYREF aufbewahrt werden. Wenn Sie ihn als Eingabeparameter hinzufügen, kann es das NetFlow / IPFIX-Datagramme ohne Vorlagen analysieren. Wenn das empfangene Paket dieselbe Vorlagen-ID hat, wird diese Vorlage von neuem überschrieben. Verwenden Sie streng; Verwenden Sie net :: flow qw (decode); Verwenden Sie io :: Socket :: inet; mein $ shann_port = 9993; mein $ paket = undef; mein $ templatearrayref = undef; MEINE $ SOCK = IO :: Socket :: Inet-> NEU (localport => $ RECEICE_PORT, PROTO => 'UDP'); Während ($ SOCK-> RECV ($ Packet, 1548)) {My ($ headerhashref, $ templatearrayref, $ flowarrayref, $ errorarraRef) = net :: flow :: decode ($ paket, $ templatearrayref); GREP {drucken "$ _n"} @ {$ errorsRarrayref} if (@ {$ erforrarraRef}); drucken "n-header-information -n"; FOREACH MEIN $ KEY (SORT-KEYS% {$ headerhashref}) {printf "% s = = n", $ KEY, $ headerhashref -> {$ KEY}; } FOREACH MEIN $ TEMPLATEREREF (@ {$ templatearrayref}) {drucken "n-- template information --n"; FOREACH MEIN $ TEMPKEY (SORT-KEYS% {$ TEMPLATEREREF}) {if ($ tempkey EQ "TEMPLANLE") {Printf "% s = N", $ tempkey; FOREACH MEIN $ REF (@ {$ templatheref -> {Template}}) {FOREACH MEIN $ KEY (Keys% {$ ref}) {printf "% s = D", $ KEY, $ REF -> {$ KEY} ; } drucken "n"; }} else {printf "% s = = n", $ tempkey, $ templateref -> {$ tempkey}; }}} Foreach My $ FlowRef (@ {$ flowArrayref}) {drucken "n-- flow information --n"; FOREACH MEINE $ ID (Sortieren von Tasten% {$ flowref}) {if ($ ID EQ "SetID") {drucken "$ ID = $ flowRef -> {$ ID} n"; } else {printf "id = d value =% sn", $ ID, auspacken ("H *", $ FlowRef -> {$ ID}); }}}}}}}}} Convertieren Sie das Protokoll von NetFlow V5 in NetFlow V9 - das folgende Skript konvertiert das NetFlow-Protokoll von NetFlow V5 auf NetFlow V9 als Konverter. Zunächst dekodiert es NetFlow V5 Datagram. Danach werden diese Durchflussaufzeichnungen gemäß der jeweiligen Vorlage in NetFlow V9 codiert, die das Abtastintervall und den Abtastmodus enthalten. Und sie werden an den nächsten Sammler geschickt. Verwenden Sie streng; Verwenden Sie net :: Flow QW (Decoding Codes); Verwenden Sie io :: Socket :: inet; mein $ receive_port = 9995; mein $ send_port = 9996; mein $ paket = undef; mein $ templateref = undef; Mein $ mytemplateref = {'setid' => 0, 'temlage' '=> 300,' Template '=> ,}; mein @mytemplates = ($ mytemplateref); Meine $ codeheaderhashref = {'SourceID' => 0, 'versionnum' => 9, 'sequenzenenum' => 0,}; My $ r_sock = IO :: Socket :: inet-> NEU (localport => $ RECEICE_PORT, PROTO => 'UDP'); My $ s_sock = io :: Socket :: inet-> neu (Peeraddr => '127.0.0.1', Peerport => $ send_port, proto => 'UDP'); während ($ r_sock-> recv ($ paket, 1548)) {mein $ pktsarrayref = undef; Mein ($ headerhashref, undef, $ FlowArrayref, $ errorsRrayRef) = net :: flow :: decode ($ paket, undef); GREP {drucken "$ _n"} @ {$ errorsRarrayref} if (@ {$ erforrarraRef}); Foreach My $ HashRef (@ {$ flowarrayref}) {$ HashRef -> {"setid"} = 300; $ HashRef -> {"34"} = Pack ("n", $ headerhashref -> {"SamplingInterval"}), falls definiert $ headerhashref -> {"samplingInterval"}; $ HashRef -> {"35"} = Pack ("n", $ headerhashref -> {"SamplingMode"}), wenn $ headerHashref definiert -> {"SamplingMode"}; } $ Codeheaderhashref -> {"sysuptime"} = $ headerhashref -> {"sysucuspime"}; $ Codeheaderhashref -> {"unixsecs"} = $ headerhashref -> {"unixsecs"}; $ Codeheaderhashref -> {"sequenzenumum"} + = 1; ($ Codeheaderhashref, $ pktsarrayref, $ errorsRrayRef) = net :: flow :: codieren ($ codeheaderhashref, @mytemplates, $ flowArrayref, 1400); GREP {drucken "$ _n"} @ {$ errorsRarrayref} if (@ {$ erforrarraRef}); FOREACH MEIN $ REF (@ {$ pktsarrayref}) {$ s_sock-> send ($$ ref); }} Anforderungen: · Perl Anforderungen: · Perl.


Net :: flow. Zugehörige Software