Neto :: fluir

NET :: Flow es un módulo Perl que se usa para decodificar y codificar datagramas de NetFlow / IPFIX.
Descargar ahora

Neto :: fluir Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Atsushi Kobayashi
  • Sitio web del editor:
  • http://search.cpan.org/~akoba/Net-Flow-0.03/lib/Net/Flow.pm

Neto :: fluir Etiquetas


Neto :: fluir Descripción

NET :: Flow es un módulo Perl que se usa para decodificar y codificar datagramas de NetFlow / IPFIX. NET :: Flow es un módulo Perl que se usa para decodificar y codificar datagramas de NetFlow / IPFIX.SynopsiseExample # 1 - Registros de flujo de salida de NetFlow V5, V9 y IPFIX: el secuestro Script simplemente emite los registros de flujo recibidos después de decodificar los datagramas de netflow / ipfix. Puede analizar el Netflow V5, V9 y IPFIX. Si recibe datagramas de NetFlow V9 / IPFIX, se pueden mantener varias plantillas de NetFlow / IPFIX como referencia de matriz $ TEMPLATEARRARIRF. Al agregarlo como el parámetro de entrada, puede analizar los datagramas de netflow / ipfix sin plantillas. Si el paquete recibido tiene la misma identificación de plantilla, esta plantilla se sobrescribe por una nueva. usar estricto; Use NET :: FLOW QW (Decodish); Usa IO :: Socket :: Inet; My $ receptor_port = 9993; My $ PAQUET = UNDEF; My $ TEMPLATEARRARIRF = UNDEF; My $ SOCK = IO :: Socket :: Inet-> Nuevo (localport => $ receed_port, proto => 'UDP'); Mientras ($ SOCK-> REVV ($ Paquete, 1548)) {My ($ HeaderHashref, $ TEMPLATEARRARERF, $ FLOWARRAYREF, $ ERRORSARRAYREF) = NET :: FLOW :: Decodish ($ Paquete, $ TEMPLATARRARREF); grep {imprimir "$ _n"} @ {$ ERRORSARRAYREF} SI (@ {$ ERRORSARRAYREF}); Imprimir "N- Información de encabezado -n"; foreach My $ Key (Ordenar Teclas% {$ Headerhashref}) {printf "% s = = n", $ Tecla, $ HeaderHashref -> {$ KEY}; } foreach my $ templateref (@ {$ TEMPLATEARRARREF}) {impresión "N-- Información de la plantilla --n"; foreach My $ Templey (Ordenar las teclas% {$ TEMPLATEREF}) {if ($ Tempkey EQ "plantilla") {printf "% s = n", $ TEMPKEY; foreach My $ ref (@ {{$ TEMPLATERREF -> {TEMPLA}}) {foreach My $ Key (teclas% {$ ref}) {printf "% s = d", tecla $, $ ref -> {$ key} ; } Imprimir "n"; }} otra cosa {printf "% s = = n", $ TEMPKEY, $ TEMPLATEREF -> {$ TEMPKEY}; }}} foreach mis $ flowref (@ {$ flowarrayref}) {impresión "n-- Información de flujo --n"; foreach My $ ID (Ordenar Teclas% {$ Flowref}) {if ($ id eq "setid") {imprimir "$ id = $ flowref -> {$ id} n"; } else {printf "ID = D Valor =% SN", $ ID, sin empacar ("H *", $ Flowref -> {$ ID}); }}}} Ejemplo # 2: convertir el protocolo de NetFlow V5 a NetFlow V9: la siguiente secuencia de comandos convierte el protocolo de NetFlow de NetFlow V5 a NetFlow V9 como convertidor. Al principio, decodifica datagramas NetFlow V5. Después de eso, estos registros de flujo se codifican en NetFlow V9 de acuerdo con la plantilla particular que incluye el intervalo de muestreo y el modo de muestreo. Y se envían al próximo colector. usar estricto; Utilice NET :: FLOW QW (Decodish Code); Usa IO :: Socket :: Inet; My $ receptor_port = 9995; My $ send_port = 9996; My $ PAQUET = UNDEF; My $ TEMPLATEREF = UNDEF; My $ MYTEMPLATEREF = {'SECID' => 0, 'TemplateID' => 300, 'Template' => ,}; Mis @MyTemplates = ($ MyTemplatereF); MY $ ENCODEHEADERHASHREF = {'SouringID' => 0, 'VersionNum' => 9, 'secuencenum' => 0,}; My $ R_SOCK = IO :: Socket :: Inet-> Nuevo (localport => $ reception_port, proto => 'udp'); MY $ S_SOCK = IO :: Socket :: Inet-> Nuevo (PeerAddr => '127.0.0.1', PeerPort => $ send_port, proto => 'udp'); Mientras ($ R_SOCK-> REBV ($ PAQUET, 1548)) {MY $ PKTSARRAYREF = UNDEF; MI ($ HeaderHashref, UNDEF, $ FLOWARRAYREF, $ ERRORSARRAYREF) = NET :: FLOW :: Decodish ($ Paquete, UNDEF); grep {imprimir "$ _n"} @ {$ ERRORSARRAYREF} SI (@ {$ ERRORSARRAYREF}); foreach My $ hashref (@ {$ flowarrayref}) {$ hashref -> {"setid"} = 300; $ Hashref -> {"34"} = Pack ("N", $ HeaderHashref -> {"SamplingInterval"}) Si se define $ HeaderHashref -> {"samplinginterval"}; $ Hashref -> {"35"} = Pack ("N", $ HeaderHashref -> {"samplingmode"}) Si se define $ HeaderHashref -> {"SamplingMode"}; } $ EncodeHeaderHashref -> {"Sysuptime"} = $ HeaderHashref -> {"Sysuptime"}; $ EncodeHeaderhashref -> {"Unixsecs"} = $ HeaderHashref -> {"UnixSecs"}; $ EncodeHeaderhashref -> {"secuencenum"} + = 1; ($ ENCODEHEADERHASHASHREF, $ PKTSARRAYREF, $ ERRORSARRAYREF) = NET :: FLOW :: CODE ($ ENCODEHEADERHASHREF, @MyTemplates, $ Flowarrayref, 1400); grep {imprimir "$ _n"} @ {$ ERRORSARRAYREF} SI (@ {$ ERRORSARRAYREF}); foreach My $ ref (@ {$ pktsarrayref}) {$ s_sock-> Enviar ($$ ref); }} Requisitos: · Requisitos de Perl: · Perl


Neto :: fluir Software relacionado

NET :: Snooplog

NET :: Snooplog es un módulo Perl que se usa para leer registros de paquetes de red Snoop, desde RFC1761 Snoop Ver 2. ...

154

Descargar