[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