Net :: Flow.

Net :: Fluxo é um módulo Perl usado para decodificar e codificar datagramas do netflow / ipfix.
Baixe Agora

Net :: Flow. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Atsushi Kobayashi
  • Site do editor:
  • http://search.cpan.org/~akoba/Net-Flow-0.03/lib/Net/Flow.pm

Net :: Flow. Tag


Net :: Flow. Descrição

Net :: Fluxo é um módulo Perl usado para decodificar e codificar datagramas NetFlow / IPFIX. Net :: Fluxo é um módulo Perl usado para decodificar e codificar NetFlow / IPFIX datagrams.SYNOPSISEXAMPLE # 1 - Fluxo de saída de Registros de NetFlow v5, v9 e IPFIX -A seguinte script simplesmente emite o recebeu Fluxo de registros após a decodificação datagramas NetFlow / IPFIX. Pode analisar o NetFlow v5, v9 e IPFIX. Se ele receber NetFlow v9 / IPFIX datagramas, vários modelos de NetFlow / IPFIX pode ser mantido como referência de matriz $ TemplateArrayRef. Adicionando-o como parâmetro de entrada, ele pode analisar os datagramas NetFlow / IPFIX sem modelos. Se recebeu Packet tem mesmo modelo Id, este modelo é substituído por um novo. Use rigoroso; uso Net :: Fluxo qw (recepção); Use io :: soquete :: inet; my $ receive_port = 9993; my $ pacote = undef; my $ TemplateArrayRef = undef; my $ meia = IO :: Socket :: INET-> new (LocalPort => $ receive_port, Proto => 'udp'); while ($ sock-> recv ($ pacote de 1548)) {my ($ HeaderHashRef, $ TemplateArrayRef, $ FlowArrayRef, $ ErrorsArrayRef) = Net :: Fluxo :: decode ($ pacote, $ TemplateArrayRef); grep {print "$ _n"} @ {$ ErrorsArrayRef} if (@ {$ ErrorsArrayRef}); imprimir "n- -n Informações do cabeçalho"; foreach my $ chave (chaves de classificação% {$ HeaderHashRef}) {printf "% s = = n", $ Key, $ HeaderHashRef -> {$ key}; } Foreach my $ TemplateRef (@ {$ TemplateArrayRef}) {print "n-- Modelo de informações de -N"; foreach my $ TempKey (chaves de classificação% {$ TemplateRef}) {if ($ TempKey eq "Modelo") {printf "% s = n", $ TempKey; foreach my $ Ref (@ {$ TemplateRef -> {Template}}) {foreach my $ chave (keys% {$ Ref}) {printf "% s = D", $ Key, $ Ref -> {$ key} ; } Imprimir "n"; }} Else {printf "% s = = n", $ TempKey, $ TemplateRef -> {$ TempKey}; }}} Foreach my $ FlowRef (@ {$ FlowArrayRef}) {print "n-- Fluxo de Informações -N"; foreach my $ Id (chaves de classificação% {$ FlowRef}) {if ($ Id eq "setId") {print "$ Id = $ FlowRef -> {$ id} n"; } Else {printf "id = d% sn Value =", $ Id ,, descompactar ( "H *", $ FlowRef -> {$ id}); }}}} Exemplo # 2 - Converter protocolo de NetFlow v5 de NetFlow v9 -A seguinte scripts convertidos NetFlow protocolo de NetFlow v5 de NetFlow v9 como conversor. Na primeira, ele decodifica datagrama v5 NetFlow. Depois disso, estes registos de fluxo são codificados em NetFlow v9 de acordo com o modelo particular que incluem intervalo de amostragem e o modo de amostragem. E eles são enviados para o próximo Collector. Use rigoroso; uso Net :: Fluxo qw (decodificação codificar); uso IO :: Socket :: INET; my $ receive_port = 9995; my $ send_port = 9996; my $ pacote = undef; my $ TemplateRef = undef; my $ MyTemplateRef = { 'setId' => 0, 'TemplateID' => 300, 'Modelo' => ,}; meus @MyTemplates = ($ MyTemplateRef); my $ EncodeHeaderHashRef = { 'sourceid' => 0, 'VersionNum' => 9, 'SequenceNum' => 0,}; my $ r_sock = IO :: Socket :: INET-> new (LocalPort => $ receive_port, Proto => 'udp'); my $ s_sock = IO :: Socket :: INET-> new (PeerAddr => '127.0.0.1', PeerPort => $ send_port, Proto => 'udp'); while ($ r_sock-> recv ($ pacote de 1548)) {my $ PktsArrayRef = undef; my ($ HeaderHashRef, undef, $ FlowArrayRef, $ ErrorsArrayRef) = Net :: Fluxo :: decode ($ pacote, undef); grep {print "$ _n"} @ {$ ErrorsArrayRef} if (@ {$ ErrorsArrayRef}); foreach my $ HashRef (@ {$ FlowArrayRef}) {$ HashRef -> { "setId"} = 300; $ HashRef -> { "34"} = pacote ( "N", $ HeaderHashRef -> { "SamplingInterval"}) se definido $ HeaderHashRef -> { "SamplingInterval"}; $ HashRef -> { "35"} = pacote ( "N", $ HeaderHashRef -> { "SamplingMode"}) se definido $ HeaderHashRef -> { "SamplingMode"}; } $ EncodeHeaderHashRef -> { "SysUpTime"} = $ HeaderHashRef -> { "SysUpTime"}; $ EncodeHeaderHashRef -> { "UnixSecs"} = $ HeaderHashRef -> { "UnixSecs"}; $ EncodeHeaderHashRef -> { "SequenceNum"} + = 1; ($ EncodeHeaderHashRef, $ PktsArrayRef, $ ErrorsArrayRef) = Net :: Fluxo :: encode ($ EncodeHeaderHashRef, @MyTemplates, $ FlowArrayRef, 1400); grep {print "$ _n"} @ {$ ErrorsArrayRef} if (@ {$ ErrorsArrayRef}); foreach my $ Ref (@ {$ PktsArrayRef}) {$ s_sock-> send ($$ Ref); }} Requisitos: · Requisitos de Perl: · Perl.


Net :: Flow. Software Relacionado

Net :: snooplog.

net :: snooplog é um módulo Perl usado para ler registros de pacotes de rede de snoop, de RFC1761 Snoop ver 2. ...

154

Download