NET :: Flux

NET :: Le débit est un module Perl utilisé pour décoder et coder NetFlow / iPfix datagrammes.
Télécharger maintenant

NET :: Flux Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • Perl Artistic License
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Atsushi Kobayashi
  • Site Internet de l'éditeur:
  • http://search.cpan.org/~akoba/Net-Flow-0.03/lib/Net/Flow.pm

NET :: Flux Mots clés


NET :: Flux La description

NET :: Le flux est un module Perl utilisé pour décoder et coder NetFlow / iPfix datagrammes. NET :: Le flux est un module Perl utilisé pour décoder et encoder NetFlow / ipfix datagrams.synopsisiesSexItSexample # 1 - Enregistrements de flux de sortie de NetFlow V5, V9 et IPFIX - Le script suivant génère simplement les enregistrements de flux reçus après décodage des datagrammes Netflow / IPFIX. Il peut analyser NetFlow V5, V9 et IPFIX. S'il reçoive des datagrammes NetFlow V9 / IPFIX, plusieurs modèles de NetFlow / IPFIX peuvent être conservés comme référence de tableau $ Templatearrayref. En l'ajoutant comme le paramètre d'entrée, il peut analyser les datagrammes NetFlow / IPFIX sans modèles. Si le paquet reçu a le même identifiant de modèle, ce modèle est écrasé par une nouvelle. utiliser strict; Utiliser Net :: Flux QW (décodage); utiliser io :: socket :: inet; mon $ réception_port = 9993; My $ Packet = Undef; mon $ templatearrayref = undef; My $ sock = io :: socket :: inet-> nouveau (localport => $ recevait_port_port, proto => 'udp'); tandis que ($ sock-> recv ($ paquet, 1548)) {My ($ mon ($ headerhashref, $ templatearrayref, $ flowarrayref, $ errorsarrayref) = net :: Decode ($ paquet, $ templatearrayref); grep {imprimer "$ _n"} @ {$ errorsarrayref} if (@ {$ errorsarrayref}); print "N-Informations d'en-tête -N"; foreach ma clé $ (clés de tri% {$ headerhashref}) {printf "% s = = n", $ clé, $ headerhashref -> {$ clé}; } foreach mon $ templateef (@ {$ templatearrayref}) {imprimé "N-- informations de modèle --n"; foreach My $ Tempkey (trier clés% {$ templateef}) {Si ($ Tempkey eq "modèle") {printf "% s = n", $ tempkekey; foreach My $ Réf (@ {$ templatèref -> {modèle}}}) {foreach My $ clé (clés% {$ ref}) {printf "% s = d", clé, $ REF -> {$ clé} ; } Imprimer "N"; }} else {printf "% s = = n", $ tempkekey, $ templateef -> {$ tempkekey}; }}} foreach my $ flowref (@ {$ flowarrayref}) {imprimé "N-- informations de flux --n"; foreach mon identifiant $ (triys de tri% {$ flowref}) {if ($ id eq "seta") {imprimer "$ id = $ id = $ flowref -> {$ id} n"; } else {printf "id = d valeur =% sn", $ ID ,, déballez ("H *", $ flowref -> {$ id}); }}}}} Exemple # 2 - Convertir le protocole de NetFlow V5 en NetFlow V9 -Le script suivant convertit le protocole NetFlow de NetFlow V5 en NetFlow V9 en tant que convertisseur. Au début, il décode NetFlow V5 Datagramm. Après cela, ces enregistrements de flux sont codés dans NetFlow V9 selon le modèle particulier qui incluent l'intervalle d'échantillonnage et le mode d'échantillonnage. Et ils sont envoyés au prochain collecteur. utiliser strict; Utiliser Net :: Flow QW (décodage codé); utiliser io :: socket :: inet; mon $ recevoir_port = 9995; mon $ Send_Port = 9996; My $ Packet = Undef; mon $ templateef = undef; My $ myTemplaTeref = {'SETID' => 0, 'templateid' => 300, 'modèle' => ,}; mes @mytemplates = ($ myTemplatèref); My $ EncodeheaderHashRef = {'sourceId' => 0, 'versionNum' => 9, "séquencénum" = 0,}; My $ r_sock = io :: socket :: inet-> nouveau (localport => $ recevoir_port_port, proto => 'udp'); mon $ s_sock = io :: socket :: inet-> nouveau (peeraddr => '127.0.0.1', peerport => $ Send_Port, proto => 'udp'); tandis que ($ r_sock-> recv ($ paquet, 1548)) {My $ pktsarrayref = UNDEF; mon ($ headerhashref, undef, $ flowarrayref, $ errorsarrayref) = net :: flux :: décodage ($ paquet, UNDF); grep {imprimer "$ _n"} @ {$ errorsarrayref} if (@ {$ errorsarrayref}); foreach mon $ hashref (@ {$ flowarrayref}) {$ hashref -> {"seid"} = 300; $ Hashref -> {"34"} = pack ("N", $ headerhashref -> {"SampleInterval"}) Si défini $ HeaderHashRef -> {"SampleInterval"}; $ Hashref -> {"35"} = pack ("n", $ headerhashref -> {"SamplingMode"}) Si défini $ HeaderHashRef -> {"SamplingMode"}; } $ Encodheaderhashref -> {"sysuptime"} = $ headerhashref -> {"sysuptime"}; $ Encodheaderhashref -> {"Unixsecs"} = $ headerhashref -> {"Unixsecs"}; $ Encodheaderhashref -> {"séquencénum"} + = 1; ($ Encodheaderhashref, $ pktsarrayref, $ errorsarrayref) = net :: flux :: encode ($ encodheaderhashref, @mytempates, $ flowarrayref, 1400); grep {imprimer "$ _n"} @ {$ errorsarrayref} if (@ {$ errorsarrayref}); foreach My $ Réf (@ {$ pktsarrayref}) {$ s_sock-> envoyer ($$ ref); }} Exigences: · Exigences de PERL: · Perl


NET :: Flux Logiciels associés