From ac2f9f65f87975f49e620b3bbf629a33f30fcb73 Mon Sep 17 00:00:00 2001 From: GabrielMoro666 Date: Sat, 26 Jun 2021 22:00:07 -0300 Subject: [PATCH 1/4] teste From b1e18062a23ada6e34358fbc48013514250a8cbb Mon Sep 17 00:00:00 2001 From: GabrielMoro666 Date: Sun, 27 Jun 2021 00:00:51 -0300 Subject: [PATCH 2/4] ipv6 --- __pycache__/general.cpython-36.pyc | Bin 0 -> 956 bytes capture.pcap | Bin 0 -> 114921 bytes .../__pycache__/ethernet.cpython-36.pyc | Bin 0 -> 671 bytes networking/__pycache__/http.cpython-36.pyc | Bin 0 -> 477 bytes networking/__pycache__/icmp.cpython-36.pyc | Bin 0 -> 540 bytes networking/__pycache__/icmpv6.cpython-36.pyc | Bin 0 -> 1157 bytes .../icmpv6_messages.cpython-36.pyc | Bin 0 -> 2575 bytes networking/__pycache__/ipv4.cpython-36.pyc | Bin 0 -> 835 bytes networking/__pycache__/ipv6.cpython-36.pyc | Bin 0 -> 1265 bytes networking/__pycache__/pcap.cpython-36.pyc | Bin 0 -> 1010 bytes networking/__pycache__/tcp.cpython-36.pyc | Bin 0 -> 816 bytes networking/__pycache__/udp.cpython-36.pyc | Bin 0 -> 545 bytes networking/ethernet.py | 2 +- networking/icmpv6.py | 26 +++++++ networking/icmpv6_messages.py | 73 ++++++++++++++++++ networking/ipv6.py | 29 +++++++ sniffer.py | 18 ++++- 17 files changed, 144 insertions(+), 4 deletions(-) create mode 100644 __pycache__/general.cpython-36.pyc create mode 100644 capture.pcap create mode 100644 networking/__pycache__/ethernet.cpython-36.pyc create mode 100644 networking/__pycache__/http.cpython-36.pyc create mode 100644 networking/__pycache__/icmp.cpython-36.pyc create mode 100644 networking/__pycache__/icmpv6.cpython-36.pyc create mode 100644 networking/__pycache__/icmpv6_messages.cpython-36.pyc create mode 100644 networking/__pycache__/ipv4.cpython-36.pyc create mode 100644 networking/__pycache__/ipv6.cpython-36.pyc create mode 100644 networking/__pycache__/pcap.cpython-36.pyc create mode 100644 networking/__pycache__/tcp.cpython-36.pyc create mode 100644 networking/__pycache__/udp.cpython-36.pyc create mode 100644 networking/icmpv6.py create mode 100644 networking/icmpv6_messages.py create mode 100644 networking/ipv6.py diff --git a/__pycache__/general.cpython-36.pyc b/__pycache__/general.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6f3d0fbad75e8e5126fa918a45fd74a9e6c268c0 GIT binary patch literal 956 zcmaJ<&2G~`5Z+lkjvJ-?RupmI1P32TD!8C1iYn1_RH+gN3lv=MCbjF>?(SAigL85v zdgU>A3=TX4(q1{`6?$SO7F7`vYwgT>cV@nsZ|2SRcIU_UpPzO)W53v)<=}ZAw|uu65>7X}xKo=8>^(S|qt`otLFlffKgpQ9M!6Md%-28adHM zg+5(HLa1*{wGr}WzkgE9Wq%eOt3+n~1F26S;~mx_YBxs(<8q0KP(!O#{no8Z3Aw3Z!dI-$PICg@bT$pYe;M? zN;SGqp$W%j%NI>gCiC;mB$F)3Wp9`jag^y%@77^W#%r1d3!T3*CD6yX^$v;|<=S1r zHD(Q`Bvg+rU;Zz}TaUoA zP9}5PNpzBH6XmhAE#g5d>ZA3IT$l?Lm7z;Aa1>!!563OZXV%rpvY`yAq!&e`*@ypN yQw^E~jZO!4z{gKL!+&(_kaE;6s?AJo?(Z~$X1NLM59ftA&*X?$)kLH3`t9HG8{6#w literal 0 HcmV?d00001 diff --git a/capture.pcap b/capture.pcap new file mode 100644 index 0000000000000000000000000000000000000000..37d4175ad89d7f3f293b606d87bde9673de6ec68 GIT binary patch literal 114921 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 literal 0 HcmV?d00001 diff --git a/networking/__pycache__/http.cpython-36.pyc b/networking/__pycache__/http.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ee372900802c765515194e11dd7ed3133c29c27 GIT binary patch literal 477 zcmYjO!A`o}8(XFwJ{AGy8USW_#XjHa}8XW-A$h4!cN zDUWsH-{@j))68F``Mk(vsQuB}&QjAI$#AZ1cWmM)(z$Q6B}r_i{><8}m#s@rh}gtd zh#K|nApzs8#p-O+r1^UP`$L=<#YQf)5M@J%MXHtw`6oiWEM@YylT(SR$pbo~97Cd? eP|!qGnlGmVrFZ#v#Z`3*Gw=(=ooY7# literal 0 HcmV?d00001 diff --git a/networking/__pycache__/icmp.cpython-36.pyc b/networking/__pycache__/icmp.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..718ee1080d8e3c53bab14d2a68367049dee51559 GIT binary patch literal 540 zcmYjNy-ve05WYB}M5twAfeFSAG!m=`RTPObP*v&{A(;@nG~^fCQPrwj;bC|H9)N*o zK=R7OD==}_s))0``@hfjowiy#AMc-cZvgOx_!AesEG_U9!*- z&IsDxH`ZYglimnJr;E^gs3c$~giJVsJwxaUm!_Nvo|#qB zdT}YF_2Y?*Q(foQ6OoD9%z9d8W9zGE$|>^-s);l|{a{k&GI)sYRU)(CQtH%{RWL18 zs*zO&!Kb7!NwxWCFgdB^Sl&wMt+m?r#i~k6}5}gs|Ws5Ey~d@iCdH7vsK(?ic%~8UqAg% Q(UA4e*4Lan7_BGWU*hF`z5oCK literal 0 HcmV?d00001 diff --git a/networking/__pycache__/icmpv6.cpython-36.pyc b/networking/__pycache__/icmpv6.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0b6246ce8a7212d1bf4cb2232aaf2663f740748 GIT binary patch literal 1157 zcmYjQ&1%~~5T0HASa$3rb<=`FDW>EiXyQX5g-}9h0;PqRKniVr*(zEk@sDJ8S5B}= zPf1^(r$WdB^m%$H=-QKCp{LHQ4-I-#LHjs$49uklE>E6lHcelu_n|=TX?#) zf=jdaC#Y4-{P$h!d>BWqv*1K^qe1H+(*1NeYF!RhUyp(?Y8_3|^I@`i6omaK-8@dZ zr>Bu>B~eP0ZgSSj3)&h@GEazZ(oKb+()BU|aE~psDn9FMl}%UjtKXXQLOL=HI%EZ> z(clLfl6|H7r(1_xYzKU^p79#w+jq`OFbuk7>lW@f`I8OY;~FmM0;Et6buv3FVtjyP zjR8H#v?=ll68@3A5^|k;CPqArxQh`~tlXYHEH^is`AM4jwd_=;OJ$0_M?H3$)7o=m zHQPaqZpP-z`zRDHuNp2n1!KCBM+yazQa6F(BL}G9PSY=TX$}-$L1Up4s#EP&}9DEV0?U6Kzc4jj( z>sV79fQ0w^RY2iCz(0XA2daFcij)2V7wBHevX&S^6}vUx&d&7o^mKpSyO%~sM-Ke* z>+8Sm^}OG`fh&jo7qOYc2rql!LFPWTd)ZYFvMXL87vOmR%3|+DY-SvRd#f4nR>I0xrpW+Mx;P=pd(*vP??a1k!SW$Zl#bMSOB_RPjGYQU4A_0N{w!~!=~NZ$%2 zSu8d8gQj0=akszX2e-LpRw-5!4L5pIgq-p9fOFvB4pn^Zhum__BCT*i=q4&!tofF+ ztLqWhC@pQG*6q6*G!-#Ilx4p(*!@Veq7v0P?g|WKQK)0|f02;Z;wzuvDqOarJL!>cKec9tnswP^TRWz@Q z_0%ccWO^=TusbzRp{k3Z>%fX{o9WeT2Z6MTsinAOQGu~+M*^IDU_Ql~6Aw(^{6z3Gf}1ESrYTu4V;O8G zwR>(}g<&kWJbzc9=LhDQ59kD8tj5T!af~(Qb5qoW#VntCiMN#mhOCV^Q*~xktOJf~ z5>mObEp`o7j)N7<;Z!X-pI*l5K5_^cCKyq(#FGb$D977wQuAAsmOCD1>Z;b5;X)#L z5=)2)sE1wSK5$*gchDD}rif{Zn5Ky7VT4WsyQsGt!JTZXh_ys0Y`>_HT6BXn!n)IS z?Kh~dFf54%OH2(tV+TuMA*;`la@xyHbF@ox6&uz}EMaxQTfn#sR4lQAp)(8Qq(C*K zaCrDKU$;H0nQfzY2Sv}OL>KY%$=mDuhZrgz5u~2#8O(qPp zxL_r&CGkY|*d~r8wX^8NKPqF=$LjTP9W#uWU>FZ0+n!;*N#ch)Vu?t|>a+5V8c~ZiU@NKK2(p{x*o5&A%snWJhC1<-I;n@`_>UFM5l3Nl%!k1{LwYh58 z`|l`5?ah3(ikWPyRbsxmh2Z6~ng4r_45u~hLY>qQhZ0QsZX*33RNS(qjQ>bz7{#<& z-5jY_Lj`e*`unQYJF(yD&gddqoA_n`W@(H{Ff~Jomd_^dST##~TRw_AgKu`e^aET)I79p7>c9KmuyNm6lZL~S1 zJPeP)foDMSl~Z1U6Em9z6$yJiGoIgXXZ)<$tpE7_^V3sC$S-nhaga~p*hfGVQ8Xn3 z@{TB`_%%^{%?4D_Gtw3tu#?^p>25);ZR}$ZGyzXCV2UbsO$JkM8_q|FMl^m9!nL-rCfNft9MAI`AYHkFQJ3yBAp0u7{wqCp|%J;WMSQ)1|Ws#g7W{ueE4Ep?IpgG3R}qk0DS1ca{vGU literal 0 HcmV?d00001 diff --git a/networking/__pycache__/ipv6.cpython-36.pyc b/networking/__pycache__/ipv6.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7675f4b702e2a65a9328ef6fdbc30ebb1fa052ce GIT binary patch literal 1265 zcmZuw&2AGh5Vm(W$>tCGN1+w83nzlo=77{gg-W5Q6sd|Twc?PAao0|=?PfRF+m=SX zwLAsl0eBt`AYVD<6}Z5RH>EwWk-r(wjK?$nCeQ2j%Ix>BO`{-xA>p?}`ZT(&;$D*(Z&{7~)8S8v3jqqI&%~plrg@4*?|UP(k1b70wmu zxOtk6Ckl|FXuNlOr)wczjUP%Vi)_KtKLIY_te~Hr1#&?ctRpCA0ZMs^dwR3q$bDY! zdyQVldeKtYB%(NpD8b&}AQ%C;$_rLwuHCu0&+3(l$FsYty}w}fn$?S0>BzTxU(~U_ zOQ?pG|5@vK)z(^pE})M|7ga%^^E>VFQ|M1ofHAf_w%Q-mrV#KE$36l+%D8|~L?|IV z0BF=YuvjLhn#fNX z>q{=AGUa|cWN|czG6N~O5K3y@sUkP8@{Mt|3XLbE&H&-UhHE@6!*5i_YFDpgLwrvBP)@_LBee~R zuw(ND1_|h+Ad!3rBvS2yM4CO2MUVxMC6GmsNOuWj`Rgy?>3Ln{qm;ZP}j2sMK+i-2#b?jhVqutP=F zBI?Lt4oje!5@R}3jNu85qeNUnbp71#LsAV{+ w9wXe`U^To(;i%)JYy3y}j$gMH7`38KaZJ?wb=3ck8~;Uq>jsjZ=b*m(7kK0(eERVotYvZ~Zugk;j#+h#YLq>firSLrEz z86JZJZ-9j4E2n)0E@j4{s6sfJ8D~86&G;L?+1{Rf`}*Va6Gq5Sa&K|iAAqzkK`EkW zNz%d6lzt$JDSkr~?^((eJt48!KpdIosPEQaj91{%B&CW#^w{Uplq;cv8g zMSwGL;yBNm4TY2(0dS$6fE`jC+gFhDi}l)>7??JXg3;6&Z%%8eW7NzRH=yWr9k zR=cpZW|dnfnk-+$+=*6~GZ$e|kkxc$4c9PfiG0Kq^{-V`>LSZa|l-jkjJZL|j}Ke20e&27-Z-?acz!}-WYbC_1g zI^Ky+^a0X2oM6-+YWdXB{q-1`^&gCoFSEw+qOy(yO-|Ti3B`M2OR$b1aadV23l`HU%~;CqTgoDjYO zDcwZMWvx~v?zg18SY_pKVje;0zyV_3tAouMe><#!<7-1u5u1o8H0X=@z}r*Ud&mE> RUG#RS{0^_}pGia`{u^9?+nE3W literal 0 HcmV?d00001 diff --git a/networking/__pycache__/tcp.cpython-36.pyc b/networking/__pycache__/tcp.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91a57cc6bb6798a4feb16464d4e36b43495a18bd GIT binary patch literal 816 zcmYjPPjAyO6nC7oOVf1XFb*IAgIf<<4qPWzX-L}vRh7o6LNXzC+R)U=Y=^2-ciP|+ z@Fn;d9QX`KzH-V};KX}Li)!or^nUN3pZ)xLFbIDA{QdD8CFBp;TQ2A$5d9Q@6Yk_> zN-hbf+Xy%-7?}*&Fpm#=uch3p^(<*d7>0O*&%dIWVr1f}gVt9E^i#)ZyidPIR z)5k@cYGIfXTBt9AGpwg=w>AGD>KU~D_cEFnOA*cDPbw36^j7GFDavS7sD*}`h-k7l z^Fp3Xpe12Wu4R^{LPb&-49VmyGD&$_uC32lCNskr4qW38A&%#~azf|u{|=nn5dO#M zE_4iSL!OM6f-xH~wk&v+qaHGLQ^k4fQ7@oa)9xNTM;nd+hon*QX~Tz94R*f0c)YE` PBV0!s4HqH)+B;&=4e9xek^>C|1_SY0L7)vLUWlbH*Q zPDEK~>vp6vc1?YgE|l|SY~v1dzERo41v-8Zlz9i;M6KUJcw5X>IE`;~s> 4 + self.trafic_class = self.ipv6_data[0] << 4 | self.ipv6_data[1] >> 4 + self.flow_label = ((self.ipv6_data[1] & 0x00FF) << 16) | (self.ipv6_data[2] << 8) | self.ipv6_data[3] + self.payload_len = (self.ipv6_data[4] << 8) | self.ipv6_data[5] + self.next_header = self.ipv6_data[6] + self.hop_limit = self.ipv6_data[7] + self.src = ipaddress.IPv6Address(self.ipv6_data[8:24]) + self.dest = ipaddress.IPv6Address(self.ipv6_data[24:40]) + self.data = raw_data[40:] + + def __str__(self): + + return ( + '\t - IPv6 Packet:\n' + f'\t\t - Version: {self.version}, Trafic Class: {self.trafic_class},\n' + f'\t\t - Flow Label : {self.flow_label}, Payload lenght: {self.payload_len},\n' + f'\t\t - Next Header: {self.next_header}, Hop Limit: {self.hop_limit},\n' + f'\t\t - Source: {self.src}\n' + f'\t\t - Destination: {self.dest}\n' + ) \ No newline at end of file diff --git a/sniffer.py b/sniffer.py index 116cc6c..c303663 100644 --- a/sniffer.py +++ b/sniffer.py @@ -7,6 +7,8 @@ from networking.udp import UDP from networking.pcap import Pcap from networking.http import HTTP +from networking.ipv6 import IPv6 +from networking.icmpv6 import ICMPv6 TAB_1 = '\t - ' TAB_2 = '\t\t - ' @@ -32,7 +34,7 @@ def main(): print(TAB_1 + 'Destination: {}, Source: {}, Protocol: {}'.format(eth.dest_mac, eth.src_mac, eth.proto)) # IPv4 - if eth.proto == 8: + if eth.proto == 2048: ipv4 = IPv4(eth.data) print(TAB_1 + 'IPv4 Packet:') print(TAB_2 + 'Version: {}, Header Length: {}, TTL: {},'.format(ipv4.version, ipv4.header_length, ipv4.ttl)) @@ -83,11 +85,21 @@ def main(): print(TAB_1 + 'Other IPv4 Data:') print(format_multi_line(DATA_TAB_2, ipv4.data)) + #IPv6 + elif eth.proto == 34525: + ipv6 = IPv6(eth.data, addr) + print(str(ipv6)) + + # ICMPv6 + if ipv6.next_header == 58: + icmpv6 = ICMPv6(ipv6.data) + print(str(icmpv6)) + else: + print('Other IPv6 Data:') + print(format_multi_line(DATA_TAB_2, ipv6.data)) else: print('Ethernet Data:') print(format_multi_line(DATA_TAB_1, eth.data)) - pcap.close() - main() From 5d7b7da680541f0da7a048135664694a1db7c768 Mon Sep 17 00:00:00 2001 From: GabrielMoro666 Date: Sun, 27 Jun 2021 00:02:21 -0300 Subject: [PATCH 3/4] ipv6 --- capture.pcap | Bin 114921 -> 128410 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/capture.pcap b/capture.pcap index 37d4175ad89d7f3f293b606d87bde9673de6ec68..6bcd62cdd3e2959dde1bc0678e410da28ad54804 100644 GIT binary patch delta 7063 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 u=Lb&Mpe^DN*4ji0|@`mvHuI$=E=eU delta 11 ScmbRBn*C)Xd&3sSmj?hM^ab1i From 975651715bda44b4a086f49357e132e108141027 Mon Sep 17 00:00:00 2001 From: Gabriel Moro Date: Sun, 27 Jun 2021 01:09:06 -0300 Subject: [PATCH 4/4] Implementado IPv6 --- __pycache__/general.cpython-36.pyc | Bin 956 -> 0 bytes capture.pcap | Bin 128410 -> 0 bytes networking/__pycache__/ethernet.cpython-36.pyc | Bin 671 -> 0 bytes networking/__pycache__/http.cpython-36.pyc | Bin 477 -> 0 bytes networking/__pycache__/icmp.cpython-36.pyc | Bin 540 -> 0 bytes networking/__pycache__/icmpv6.cpython-36.pyc | Bin 1157 -> 0 bytes .../__pycache__/icmpv6_messages.cpython-36.pyc | Bin 2575 -> 0 bytes networking/__pycache__/ipv4.cpython-36.pyc | Bin 835 -> 0 bytes networking/__pycache__/ipv6.cpython-36.pyc | Bin 1265 -> 0 bytes networking/__pycache__/pcap.cpython-36.pyc | Bin 1010 -> 0 bytes networking/__pycache__/tcp.cpython-36.pyc | Bin 816 -> 0 bytes networking/__pycache__/udp.cpython-36.pyc | Bin 545 -> 0 bytes 12 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 __pycache__/general.cpython-36.pyc delete mode 100644 capture.pcap delete mode 100644 networking/__pycache__/ethernet.cpython-36.pyc delete mode 100644 networking/__pycache__/http.cpython-36.pyc delete mode 100644 networking/__pycache__/icmp.cpython-36.pyc delete mode 100644 networking/__pycache__/icmpv6.cpython-36.pyc delete mode 100644 networking/__pycache__/icmpv6_messages.cpython-36.pyc delete mode 100644 networking/__pycache__/ipv4.cpython-36.pyc delete mode 100644 networking/__pycache__/ipv6.cpython-36.pyc delete mode 100644 networking/__pycache__/pcap.cpython-36.pyc delete mode 100644 networking/__pycache__/tcp.cpython-36.pyc delete mode 100644 networking/__pycache__/udp.cpython-36.pyc diff --git a/__pycache__/general.cpython-36.pyc b/__pycache__/general.cpython-36.pyc deleted file mode 100644 index 6f3d0fbad75e8e5126fa918a45fd74a9e6c268c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 956 zcmaJ<&2G~`5Z+lkjvJ-?RupmI1P32TD!8C1iYn1_RH+gN3lv=MCbjF>?(SAigL85v zdgU>A3=TX4(q1{`6?$SO7F7`vYwgT>cV@nsZ|2SRcIU_UpPzO)W53v)<=}ZAw|uu65>7X}xKo=8>^(S|qt`otLFlffKgpQ9M!6Md%-28adHM zg+5(HLa1*{wGr}WzkgE9Wq%eOt3+n~1F26S;~mx_YBxs(<8q0KP(!O#{no8Z3Aw3Z!dI-$PICg@bT$pYe;M? zN;SGqp$W%j%NI>gCiC;mB$F)3Wp9`jag^y%@77^W#%r1d3!T3*CD6yX^$v;|<=S1r zHD(Q`Bvg+rU;Zz}TaUoA zP9}5PNpzBH6XmhAE#g5d>ZA3IT$l?Lm7z;Aa1>!!563OZXV%rpvY`yAq!&e`*@ypN yQw^E~jZO!4z{gKL!+&(_kaE;6s?AJo?(Z~$X1NLM59ftA&*X?$)kLH3`t9HG8{6#w diff --git a/capture.pcap b/capture.pcap deleted file mode 100644 index 6bcd62cdd3e2959dde1bc0678e410da28ad54804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128410 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

Yq2h$b1!@W%cAm&T1073C!hP7HdOe`tLG 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 diff --git a/networking/__pycache__/http.cpython-36.pyc b/networking/__pycache__/http.cpython-36.pyc deleted file mode 100644 index 5ee372900802c765515194e11dd7ed3133c29c27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmYjO!A`o}8(XFwJ{AGy8USW_#XjHa}8XW-A$h4!cN zDUWsH-{@j))68F``Mk(vsQuB}&QjAI$#AZ1cWmM)(z$Q6B}r_i{><8}m#s@rh}gtd zh#K|nApzs8#p-O+r1^UP`$L=<#YQf)5M@J%MXHtw`6oiWEM@YylT(SR$pbo~97Cd? eP|!qGnlGmVrFZ#v#Z`3*Gw=(=ooY7# diff --git a/networking/__pycache__/icmp.cpython-36.pyc b/networking/__pycache__/icmp.cpython-36.pyc deleted file mode 100644 index 718ee1080d8e3c53bab14d2a68367049dee51559..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmYjNy-ve05WYB}M5twAfeFSAG!m=`RTPObP*v&{A(;@nG~^fCQPrwj;bC|H9)N*o zK=R7OD==}_s))0``@hfjowiy#AMc-cZvgOx_!AesEG_U9!*- z&IsDxH`ZYglimnJr;E^gs3c$~giJVsJwxaUm!_Nvo|#qB zdT}YF_2Y?*Q(foQ6OoD9%z9d8W9zGE$|>^-s);l|{a{k&GI)sYRU)(CQtH%{RWL18 zs*zO&!Kb7!NwxWCFgdB^Sl&wMt+m?r#i~k6}5}gs|Ws5Ey~d@iCdH7vsK(?ic%~8UqAg% Q(UA4e*4Lan7_BGWU*hF`z5oCK diff --git a/networking/__pycache__/icmpv6.cpython-36.pyc b/networking/__pycache__/icmpv6.cpython-36.pyc deleted file mode 100644 index e0b6246ce8a7212d1bf4cb2232aaf2663f740748..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1157 zcmYjQ&1%~~5T0HASa$3rb<=`FDW>EiXyQX5g-}9h0;PqRKniVr*(zEk@sDJ8S5B}= zPf1^(r$WdB^m%$H=-QKCp{LHQ4-I-#LHjs$49uklE>E6lHcelu_n|=TX?#) zf=jdaC#Y4-{P$h!d>BWqv*1K^qe1H+(*1NeYF!RhUyp(?Y8_3|^I@`i6omaK-8@dZ zr>Bu>B~eP0ZgSSj3)&h@GEazZ(oKb+()BU|aE~psDn9FMl}%UjtKXXQLOL=HI%EZ> z(clLfl6|H7r(1_xYzKU^p79#w+jq`OFbuk7>lW@f`I8OY;~FmM0;Et6buv3FVtjyP zjR8H#v?=ll68@3A5^|k;CPqArxQh`~tlXYHEH^is`AM4jwd_=;OJ$0_M?H3$)7o=m zHQPaqZpP-z`zRDHuNp2n1!KCBM+yazQa6F(BL}G9PSY=TX$}-$L1Up4s#EP&}9DEV0?U6Kzc4jj( z>sV79fQ0w^RY2iCz(0XA2daFcij)2V7wBHevX&S^6}vUx&d&7o^mKpSyO%~sM-Ke* z>+8Sm^}OG`fh&jo7qOYc2rql!LFPWTd)ZYFvMXL87vOmR%3|+DY-SvRd#f4nR>I0xrpW+Mx;P=pd(*vP??a1k!SW$Zl#bMSOB_RPjGYQU4A_0N{w!~!=~NZ$%2 zSu8d8gQj0=akszX2e-LpRw-5!4L5pIgq-p9fOFvB4pn^Zhum__BCT*i=q4&!tofF+ ztLqWhC@pQG*6q6*G!-#Ilx4p(*!@Veq7v0P?g|WKQK)0|f02;Z;wzuvDqOarJL!>cKec9tnswP^TRWz@Q z_0%ccWO^=TusbzRp{k3Z>%fX{o9WeT2Z6MTsinAOQGu~+M*^IDU_Ql~6Aw(^{6z3Gf}1ESrYTu4V;O8G zwR>(}g<&kWJbzc9=LhDQ59kD8tj5T!af~(Qb5qoW#VntCiMN#mhOCV^Q*~xktOJf~ z5>mObEp`o7j)N7<;Z!X-pI*l5K5_^cCKyq(#FGb$D977wQuAAsmOCD1>Z;b5;X)#L z5=)2)sE1wSK5$*gchDD}rif{Zn5Ky7VT4WsyQsGt!JTZXh_ys0Y`>_HT6BXn!n)IS z?Kh~dFf54%OH2(tV+TuMA*;`la@xyHbF@ox6&uz}EMaxQTfn#sR4lQAp)(8Qq(C*K zaCrDKU$;H0nQfzY2Sv}OL>KY%$=mDuhZrgz5u~2#8O(qPp zxL_r&CGkY|*d~r8wX^8NKPqF=$LjTP9W#uWU>FZ0+n!;*N#ch)Vu?t|>a+5V8c~ZiU@NKK2(p{x*o5&A%snWJhC1<-I;n@`_>UFM5l3Nl%!k1{LwYh58 z`|l`5?ah3(ikWPyRbsxmh2Z6~ng4r_45u~hLY>qQhZ0QsZX*33RNS(qjQ>bz7{#<& z-5jY_Lj`e*`unQYJF(yD&gddqoA_n`W@(H{Ff~Jomd_^dST##~TRw_AgKu`e^aET)I79p7>c9KmuyNm6lZL~S1 zJPeP)foDMSl~Z1U6Em9z6$yJiGoIgXXZ)<$tpE7_^V3sC$S-nhaga~p*hfGVQ8Xn3 z@{TB`_%%^{%?4D_Gtw3tu#?^p>25);ZR}$ZGyzXCV2UbsO$JkM8_q|FMl^m9!nL-rCfNft9MAI`AYHkFQJ3yBAp0u7{wqCp|%J;WMSQ)1|Ws#g7W{ueE4Ep?IpgG3R}qk0DS1ca{vGU diff --git a/networking/__pycache__/ipv6.cpython-36.pyc b/networking/__pycache__/ipv6.cpython-36.pyc deleted file mode 100644 index 7675f4b702e2a65a9328ef6fdbc30ebb1fa052ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1265 zcmZuw&2AGh5Vm(W$>tCGN1+w83nzlo=77{gg-W5Q6sd|Twc?PAao0|=?PfRF+m=SX zwLAsl0eBt`AYVD<6}Z5RH>EwWk-r(wjK?$nCeQ2j%Ix>BO`{-xA>p?}`ZT(&;$D*(Z&{7~)8S8v3jqqI&%~plrg@4*?|UP(k1b70wmu zxOtk6Ckl|FXuNlOr)wczjUP%Vi)_KtKLIY_te~Hr1#&?ctRpCA0ZMs^dwR3q$bDY! zdyQVldeKtYB%(NpD8b&}AQ%C;$_rLwuHCu0&+3(l$FsYty}w}fn$?S0>BzTxU(~U_ zOQ?pG|5@vK)z(^pE})M|7ga%^^E>VFQ|M1ofHAf_w%Q-mrV#KE$36l+%D8|~L?|IV z0BF=YuvjLhn#fNX z>q{=AGUa|cWN|czG6N~O5K3y@sUkP8@{Mt|3XLbE&H&-UhHE@6!*5i_YFDpgLwrvBP)@_LBee~R zuw(ND1_|h+Ad!3rBvS2yM4CO2MUVxMC6GmsNOuWj`Rgy?>3Ln{qm;ZP}j2sMK+i-2#b?jhVqutP=F zBI?Lt4oje!5@R}3jNu85qeNUnbp71#LsAV{+ w9wXe`U^To(;i%)JYy3y}j$gMH7`38KaZJ?wb=3ck8~;Uq>jsjZ=b*m(7kK0(eERVotYvZ~Zugk;j#+h#YLq>firSLrEz z86JZJZ-9j4E2n)0E@j4{s6sfJ8D~86&G;L?+1{Rf`}*Va6Gq5Sa&K|iAAqzkK`EkW zNz%d6lzt$JDSkr~?^((eJt48!KpdIosPEQaj91{%B&CW#^w{Uplq;cv8g zMSwGL;yBNm4TY2(0dS$6fE`jC+gFhDi}l)>7??JXg3;6&Z%%8eW7NzRH=yWr9k zR=cpZW|dnfnk-+$+=*6~GZ$e|kkxc$4c9PfiG0Kq^{-V`>LSZa|l-jkjJZL|j}Ke20e&27-Z-?acz!}-WYbC_1g zI^Ky+^a0X2oM6-+YWdXB{q-1`^&gCoFSEw+qOy(yO-|Ti3B`M2OR$b1aadV23l`HU%~;CqTgoDjYO zDcwZMWvx~v?zg18SY_pKVje;0zyV_3tAouMe><#!<7-1u5u1o8H0X=@z}r*Ud&mE> RUG#RS{0^_}pGia`{u^9?+nE3W diff --git a/networking/__pycache__/tcp.cpython-36.pyc b/networking/__pycache__/tcp.cpython-36.pyc deleted file mode 100644 index 91a57cc6bb6798a4feb16464d4e36b43495a18bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816 zcmYjPPjAyO6nC7oOVf1XFb*IAgIf<<4qPWzX-L}vRh7o6LNXzC+R)U=Y=^2-ciP|+ z@Fn;d9QX`KzH-V};KX}Li)!or^nUN3pZ)xLFbIDA{QdD8CFBp;TQ2A$5d9Q@6Yk_> zN-hbf+Xy%-7?}*&Fpm#=uch3p^(<*d7>0O*&%dIWVr1f}gVt9E^i#)ZyidPIR z)5k@cYGIfXTBt9AGpwg=w>AGD>KU~D_cEFnOA*cDPbw36^j7GFDavS7sD*}`h-k7l z^Fp3Xpe12Wu4R^{LPb&-49VmyGD&$_uC32lCNskr4qW38A&%#~azf|u{|=nn5dO#M zE_4iSL!OM6f-xH~wk&v+qaHGLQ^k4fQ7@oa)9xNTM;nd+hon*QX~Tz94R*f0c)YE` PBV0!s4HqH)+B;&=4e9xek^>C|1_SY0L7)vLUWlbH*Q zPDEK~>vp6vc1?YgE|l|SY~v1dzERo41v-8Zlz9i;M6KUJcw5X>IE`;~s