[pyar] Parser almacena cadenas en diccionario
Alberto Benítez
freestyle10 en gmail.com
Mie Nov 14 19:52:57 ART 2012
Muchísimas gracias, parece que funciona, sigo con las pruebas!!
El 14 de noviembre de 2012 21:57, Daniel Moisset
<dmoisset en machinalis.com>escribió:
> 2012/11/14 Alberto Benítez <freestyle10 en gmail.com>
>
>> Gracias por la solución, no consigo hacerla funcionar con todos los
>> parámetros que quiero recoger
>>
>> Feb 20 23:27:11 ubuntu kernel: [1988916.899165] iptables: IN=eth0 OUT= MAC=00:00:00:00:00:00:00:
>> 00:00:00:00:00:00:00 SRC=192.168.0.3 DST=192.168.0.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=30541
>> DF PROTO=TCP SPT=60148 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
>>
>>
> Para este caso, capaz con expresiones regulares vas bien:
>
> >>> s = "Feb 20 23:27:11 ubuntu kernel: [1988916.899165] iptables: IN=eth0
> OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:00:00 SRC=192.168.0.3
> DST=192.168.0.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=30541 DF PROTO=TCP
> SPT=60148 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0"
> >>> import re
> >>> r = re.compile("([A-Z]+)=([^ ]*)")
> >>> r.findall(s)
>
> [('IN', 'eth0'),
> ('OUT', ''),
> ('MAC', '00:00:00:00:00:00:00:00:00:00:00:00:00:00'),
> ('SRC', '192.168.0.3'),
> ('DST', '192.168.0.1'),
> ('LEN', '60'),
> ('TOS', '0x10'),
> ('PREC', '0x00'),
> ('TTL', '64'),
> ('ID', '30541'),
> ('PROTO', 'TCP'),
> ('SPT', '60148'),
> ('DPT', '22'),
> ('WINDOW', '5840'),
> ('RES', '0x00'),
> ('URGP', '0')]
>
> Ahi lo tenes como lista de pares. Por supuesto tambien podes
>
> >>> dict(r.findall(s))
> {'DPT': '22',
> 'DST': '192.168.0.1',
> 'ID': '30541',
> 'IN': 'eth0',
> 'LEN': '60',
> 'MAC': '00:00:00:00:00:00:00:00:00:00:00:00:00:00',
> 'OUT': '',
> 'PREC': '0x00',
> 'PROTO': 'TCP',
> 'RES': '0x00',
> 'SPT': '60148',
> 'SRC': '192.168.0.3',
> 'TOS': '0x10',
> 'TTL': '64',
> 'URGP': '0',
> 'WINDOW': '5840'}
>
>
> Saludos,
> D.
>
>
>
>> Quizás sera mejor que me programa algún modulo a mano, se les ocurre algo?
>>
>> Saludos
>>
>>
>>
>>
>> El 9 de noviembre de 2012 14:26, Ezequiel Garcia <elezegarcia en gmail.com>escribió:
>>
>> 2012/11/9 Alberto Benítez <freestyle10 en gmail.com>:
>>> > Buenas,
>>> >
>>> > Estoy tratando de parsear lineas del log de ip tables, pongo un ejemplo
>>> >
>>> > Feb 20 23:27:11 ubuntu kernel: [1988916.899165] iptables: IN=eth0 OUT=
>>> > MAC=00:00:00:00:00:00:00:
>>> > 00:00:00:00:00:00:00 SRC=192.168.0.3 DST=192.168.0.1 LEN=60 TOS=0x10
>>> > PREC=0x00 TTL=64 ID=30541
>>> > DF PROTO=TCP SPT=60148 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
>>> >
>>> >
>>> > Es posible parsear esta linea de manera que el diccionario quede por
>>> ejemplo
>>> >
>>> > IN -> eth0
>>> >
>>> > MAC -> 00:00:00:00:00:00:00:00:00:00:00:00:00:00
>>> >
>>> >
>>> > He leído algo sobre expresiones regulares pero de entrada parece
>>> bastante
>>> > complejo.
>>> >
>>>
>>> Como dice el dicho:
>>>
>>> Some people, when confronted with a problem, think:
>>> "I know, I'll use regular expressions."
>>> Now they have two problems.
>>>
>>> :-)
>>>
>>> Ezequiel
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20121114/a1b37f11/attachment.html>
More information about the pyar
mailing list