U •v«`5ã@s¢dZddlmZddlmZddlZddlmZddlmZGdd „d ej ƒZ Gd d „d e ƒZ Gd d „d e ƒZ Gdd„de ƒZ Gdd„de ƒZdd„Zdd„ZdS)zCisco Netflow.é)Úprint_function)Úabsolute_importNé)Údpkt)Ú compat_izipc@s>eZdZdZdZdd„Zdd„Zdd„ZGd d „d ej ƒZ d S) Ú NetflowBasez Base class for Cisco Netflow packets. TODO: Longer class information.... Attributes: __hdr__: Header fields of NetflowBase. TODO. ))ÚversionÚHr)Úcountr r)Ú sys_uptimeÚIr)Úunix_secr r)Z unix_nsecr rcCs|jt|jdƒ|jS)Nr)Ú __hdr_len__ÚlenÚdatar ©Úself©rúd/private/var/folders/0j/yyfkg7712236ncpm167bvylc27vst9/T/pip-unpacked-wheel-y9gppv54/dpkt/netflow.pyÚ__len__szNetflowBase.__len__cCs&t|jƒ|_| ¡d tt|jƒ¡S©Nó)rrr Úpack_hdrÚjoinÚmapÚbytesrrrrÚ __bytes__"s zNetflowBase.__bytes__cCsLtj ||¡|j}g}|rB| |¡}| |¡|t|ƒd…}q||_dS©N)rÚPacketÚunpackrÚ NetflowRecordÚappendr)rÚbufZl_Zflowrrrr's  zNetflowBase.unpackc@s(eZdZdZdd„Zdd„Zdd„ZdS) zNetflowBase.NetflowRecordBasezÂBase class for netflow v1-v7 netflow records. TODO: Longer class information.... Attributes: __hdr__: Header fields of NetflowRecordBase. TODO. cCs|jSr)rrrrrr<sz%NetflowBase.NetflowRecordBase.__len__cCs| ¡Sr)rrrrrr@sz'NetflowBase.NetflowRecordBase.__bytes__cCs@t|jt |j|d|j…¡ƒD]\}}t|||ƒq d|_dSr)rZ__hdr_fields__ÚstructrZ __hdr_fmt__rÚsetattrr)rr"ÚkÚvrrrrDs ÿ z$NetflowBase.NetflowRecordBase.unpackN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrrrrÚNetflowRecordBase1s r+N) r'r(r)r*Ú__hdr__rrrrrr+rrrrr s   rc@s"eZdZdZGdd„dejƒZdS)ÚNetflow1z“Netflow Version 1. TODO: Longer class information.... Attributes: __hdr__: Header fields of Netflow Version 1. TODO. c@seZdZdZdZdS)zNetflow1.NetflowRecordz¸Netflow v1 flow record. TODO: Longer class information.... Attributes: __hdr__: Header fields of Netflow Version 1 flow record. TODO. )©Zsrc_addrr r©Zdst_addrr r©Znext_hopr r©Z input_ifacer r©Z output_ifacer r©Z pkts_sentr r©Z bytes_sentr r©Ú start_timer r©Zend_timer r©Zsrc_portr r©Zdst_portr r)Úpad1r r©Zip_protoÚBr©Ztosr<r©Z tcp_flagsr<r)Úpad2r<r)Zpad3r r©Úreservedr rN©r'r(r)r*r,rrrrr Vs r N)r'r(r)r*rr+r rrrrr-Ls r-c@s,eZdZdZejdZGdd„dejƒZdS)ÚNetflow5z“Netflow Version 5. TODO: Longer class information.... Attributes: __hdr__: Header fields of Netflow Version 5. TODO. )©Z flow_sequencer r)Z engine_typer<r)Z engine_idr<r)rAr rc@seZdZdZdZdS)zNetflow5.NetflowRecordz¸Netflow v5 flow record. TODO: Longer class information.... Attributes: __hdr__: Header fields of Netflow Version 5 flow record. TODO. )r.r/r0r1r2r3r4r5r7r8r9©r:r<rr>r;r=©Zsrc_asr r©Zdst_asr r©Zsrc_maskr<r©Zdst_maskr<r©r?r rNrBrrrrr ‰s r N©r'r(r)r*rr,r+r rrrrrCxs rCc@s(eZdZdZejZGdd„dejƒZdS)ÚNetflow6zÒNetflow Version 6. XXX - unsupported by Cisco, but may be found in the field. TODO: Longer class information.... Attributes: __hdr__: Header fields of Netflow Version 6. TODO. c@seZdZdZdZdS)zNetflow6.NetflowRecordú¸Netflow v6 flow record. TODO: Longer class information.... Attributes: __hdr__: Header fields of Netflow Version 6 flow record. TODO. )r.r/r0r1r2r3r4r5r7r8r9rEr>r;r=rFrGrHrI)Z in_encapsr<r)Z out_encapsr<r)Z peer_nexthopr rNrBrrrrr ¸s r N) r'r(r)r*rCr,rr+r rrrrrL«s rLc@s,eZdZdZejdZGdd„dejƒZdS)ÚNetflow7z“Netflow Version 7. TODO: Longer class information.... Attributes: __hdr__: Header fields of Netflow Version 7. TODO. )rDr@c@seZdZdZdZdS)zNetflow7.NetflowRecordrM)r.r/r0r1r2r3r4r5r7r8r9)Úflagsr<rr>r;r=rFrGrHrIrJ)Z router_scr rNrBrrrrr ës r NrKrrrrrNÜs rNcCs2ddlm}|dƒ}t|ƒ}t|jƒdks.t‚dS)Nr©Ú unhexlifyA 00010018677a613c4200fc1c24930870ac012057c0a863f70a0002010003000a0000000100000228677a372c677a372c5c1b0050ac01112c100000000004001bac011853ac18d9aac0a832020003001900000001000005dc677a377c677a377cd8e30050ac01062c100000000004001bac011418ac188dcdc0a832660003000700000001000005dc677a3790677a37908a81176fac0106361000000000040003ac0f2724ac01e51dc0a832060004001b0000000100000228677a3a38677a3a38a3511236ac2906fd180000000004001bac011645ac23178ec0a832060003001b0000000100000228677a3a4c677a3a4cc9ff0050ac1f0686020000000003001bac0d09ffac019995c0a832060004001b00000001000005dc677a3a58677a3a58ee390017ac0106de1000000000040003ac0e4ad8ac01ae2fc0a832060004001b00000001000005dc677a3a68677a3a68b36e0015ac010681100000000004001bac012338ac01d92ac0a832060003001b00000001000005dc677a3a74677a3a7400008350ac2101ab100000000003001bac0a6037ac2a934ac0a832060004001b00000001000005dc677a3a74677a3a7400000000ac0132a91000000000040007ac0a471fac01fd4ac0a832060004001b0000000100000028677a3a88677a3a8821996987ac1e067e020000000003001bac0128c9ac0142c4c0a83202000300190000000100000028677a3a88677a3a887d360050ac0106fe100000000004001bac0b08e8ac0146e2c0a832020004001900000001000005dc677a3a9c677a3a9c60696987ac01063b100000000004001bac011d24ac3cf0c3c0a832060003001b00000001000005dc677a3a9c677a3a9c46320014ac0106731800000000040003ac0b1151ac01de06c0a832060004001b00000001000005dc677a3ab0677a3ab0ef231a2bac2906e9100000000004001bac0c52d9ac016fe8c0a832020004001900000001000005dc677a3ac4677a3ac4136e006eac1906a81000000000030019ac013dddac017deec0a83266000300070000000100000028677a3ac4677a3ac40000dcbbac0101d3100000000004001bac0f28d1ac01cca5c0a832060004001b00000001000005dc677a3ad8677a3ad8c573176fac1906231800000000030007ac0a855bc0a8636e0a0002010004000a00000001000005dc677a3ae4677a3ae4bf6c0050ac0106cf1000000000040007ac01301fac182145c0a832660003000700000001000005dc677a3b00677a3b00119504bec0a806ea100000000003000aac0130b6ac1ef4aac0a832060003001b00000001000005dc677a3b34677a3b3488640017ac01061f100000000004001bac01235fac1eb009c0a832060003001b00000001000005dc677a3b48677a3b4881530050ac20064e100000000003001bac0104d9ac019463c0a832060003001b0000000100000228677a3b5c677a3b5c55100050ac010650180000000004001bac013caeac2aac21c0a832060003001b00000001000000fa677a3b84677a3b840ce70050ac0111fd100000000004001bac011f1fac17ed69c0a832020003001900000001000005dc677a3b98677a3b98ba170016ac01067c1000000000030007é)ÚbinasciirQr-rrÚAssertionError)rQZ __sample_v1ÚnfrrrÚtest_net_flow_v1_unpacks  ÿrVcCsâddlm}|dƒ}tt|dƒƒ}|d |¡}t|ƒ}|jdksFt‚|jdksTt‚|j dksbt‚|j d kspt‚t |ƒt |ƒks„t‚t |ƒ|ks”t‚t |j ƒdks¦t‚t|j ƒD],\}}t |ƒ||ksÌt‚t |ƒd ks°t‚q°dS) NrrPZ00005001db5fac9d03a0b4142265677de9b73763100010000)Z`ac0a86a6ac01aaf7c0a83232027100690000000100000228b5fa8114b5fa811435320050000006000000000000000000Z`ac019144ac1443e4c0a83216006902710000000100000028b5fa9bbdb5fa9bbd005085d7000006000000000000000000Z`ac17e2d7ac018c56c0a832320271006900000001000005dcb5fa6fb8b5fa6fb876e8176f000006000000000000000000Z`ac0ef2e5ac0191b2c0a832320271006900000001000000fab5fa81eeb5fa81eed0eb0015000006000000000000000000Z`ac0a436aac29a7090a000201027100db0000000100000228b5fa8592b5fa85928cb00035000006000000000000000000Z`ac01963dac151aa8c0a832160069027100000001000005dcb5fa86e0b5fa86e0b4e700c2000006000000000000000000Z`ac0156d1ac018615c0a832320271006900000001000005dcb5fa7d3ab5fa7d3a5b510050000006000000000000000000Z`ac32f1b1ac2919ca0a000201027100db00000001000005dcb5fa83c3b5fa83c3162c0015000006000000000000000000Z`ac0c4134ac019a7ac0a832320271006900000001000005dcb5fa8da7b5fa8da717330015000006000000000000000000Z`ac1ed284ac29d8d20a000201027100db00000001000005dcb5fa8e97b5fa8e97372a176f000006000000000000000000Z`ac01854aac2011fcc0a83216006902710000000100000228b5fa8834b5fa8834f5dd008f000006000000000000000000Z`ac010480ac3c5b6e0a000201027100db00000001000005dcb5fa9d72b5fa9d7273240016000006000000000000000000Z`ac01b94aac22c9d7c0a83216006902710000000100000028b5fa9072b5fa90720f8d00c2000006000000000000000000Z`ac2aa310ac01b419c0a83232027100690000000100000028b5fa9203b5fa920370660015000006000000000000000000Z`ac01ab6fac1e7f69c0a832160069027100000001000005dcb5fa937fb5fa937f00500b98000006000000000000000000Z`ac0c0aeaac01a115c0a832320271006900000001000005dcb5fa79cfb5fa79cf5b3317e0000006000000000000000000Z`ac01bbb3ac29758c0a000201006900db00000001000000fab5fa9433b5fa943300501eca000006000000000000000000Z`ac0f4a60ac01ab94c0a83232027100690000000100000228b5fa875bb5fa875b9ad62fab000006000000000000000000Z`ac2a0f93ac01b8a3c0a83232027100690000000100000028b5fa89bbb5fa89bb6ee10050000006000000000000000000Z`ac0193a1ac16800cc0a83216006902710000000100000028b5fa8726b5fa872600000000000001000000000000000000Z`ac01835aac1f52cdc0a832160069027100000001000005dcb5fa900db5fa900df72a008a000006000000000000000000Z`ac0ce0adac01a856c0a832320271006900000001000005dcb5fa9cf6b5fa9cf6e57c1a2b000006000000000000000000Z`ac1ecc54ac3c78260a000201027100db00000001000005dcb5fa80eab5fa80ea0000000000002f000000000000000000Z`ac01bb18ac017c7ac0a832160069027100000001000000fab5fa8870b5fa887000500b7d000006000000000000000000Z`ac170e72ac018fddc0a83232027100690000000100000228b5fa89f7b5fa89f70df7008a000006000000000000000000Z`ac0abb04ac3cb0150a000201027100db00000001000005dcb5fa90a9b5fa90a99cd0008f000006000000000000000000Z`ac0a7a3fac2903c80a000201027100db00000001000005dcb5fa7565b5fa7565eea60050000006000000000000000000Z`ac01b505c0a8639f0a000201006900db00000001000005dcb5fa7bc7b5fa7bc7005086a9000006000000000000000000Z`ac32a51bac2930bf0a000201027100db00000001000000fab5fa9b5ab5fa9b5a43f917e0000006000000000000000000réélÐIõkiBA :é0)rSrQÚlistrrrCrrTr r r rrrÚ enumerate)rQZbuf_nf5_headerZbuf_nf5_recordsZ buf_inputrUÚidxÚrecordrrrÚtest_net_flow_v5_unpack,s" ÿ r^)r*Ú __future__rrr#ÚrÚcompatrrrr-rCrLrNrVr^rrrrÚs    ?,313