Portál AbcLinuxu, 6. května 2025 06:10

Dotaz: Zpracování packetů

7.5.2021 14:10 Wex | skóre: 7
Zpracování packetů
Přečteno: 303×
Odpovědět | Admin
Příloha:
Ahoj, potřeboval bych poradit se zpracováním packetů v pythonu. Mám IoT zařízení, které posílá data na server, v cestě je Mikrotik, který zaslané pakety ještě posílá i na můj skript pomocí packet snifferu. Takže data, co přijdou do skriptu jsou zapouzdřená následovně
TZSP[Ethernet[TCP[plain_text]]]
Obsah plain textu je něco jako:
<tbl_invertor_prms><TblName>tbl_invertor_prms</TblName><ID_Device>1910232042</ID_Device><ID_Set>682432800</ID_Set><DT>2021-02-24 12:40:01</DT><Reason>Table</Reason><ERR_PV>8</ERR_PV><ERR_BATT>0</ERR_BATT><ERR_GRID>0</ERR_GRID><ERR_AC>0</ERR_AC><ERR_ELSE>0</ERR_ELSE><DBG1>886</DBG1><DBG2>0</DBG2><DBG3>0</DBG3><DBG4>0</DBG4><T_INN>21.0</T_INN><PRRTY>1</PRRTY><CHARGE>1</CHARGE><CHARGE_AC>0</CHARGE_AC><TO_GRID>0</TO_GRID><LOAD_PV_ON>1</LOAD_PV_ON><LOAD_PV_OFF>1</LOAD_PV_OFF><GRID_PV_ON>0</GRID_PV_ON><GRID_PV_OFF>0</GRID_PV_OFF><MODE>5</MODE><MODEL>50</MODEL><PRLL_OUT>0</PRLL_OUT><P_ADJ_STRT>20</P_ADJ_STRT><P_ADJ_ENBL>1</P_ADJ_ENBL><PF_MIN_100>-0.90</PF_MIN_100></tbl_invertor_prms>
Potřeboval bych z toho vytahat hodnoty. Skript, který zatím mám je v příloze. Problém je v tom, že nemůžu jednoduše dekódovat ty přijaté bajty do stringu, píše to chybu:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd4 in position 1: invalid continuation byte

Nevíte někdo, jak to jednoduše udělat? Ideálně abych nemusel postupně rozbalovat všechny protokoly, třeba něco ve stylu, že když to ten znak nezná, tak to dá místo něho třeba mezeru, nebo cokoli jiného.


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.5.2021 15:03 X
Rozbalit Rozbalit vše Re: Zpracování packetů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zapis vystup do souboru a podivej se co z toho leze.. 'utf-8' to nebude.
Řešení 1× (Wex (tazatel))
Jendа avatar 7.5.2021 17:38 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Zpracování packetů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hotfix pokud to nechceš řešit a nerozbije ti to nic dalšího:

data.decode('utf-8', errors="ignore")
7.5.2021 21:27 Wex | skóre: 7
Rozbalit Rozbalit vše Re: Zpracování packetů
Díky, pomohlo a nic to nerozbije.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.