El 23 de febrero de 2010 17:38, Boris Perez Canedo
<inf200...@ucf.edu.cu> escribió:

> Hace pocos dias escribi sobre la instalacion de scapy en Windows. En ese 
> momento trataba de instalar scapy  usando python2.6. Me daba un error de 
> sintaxis con la palabra "with" que es reservada para python2.6 en adelante y 
> que aparentemente scapy usa como variable. Hice algo que no se si esta del 
> todo bien, borre la variable with que se pasaba como argumento en dos 
> funciones de la siquiente manera:
>
> tr = map(lambda x: Gnuplot.Data(x,"lines"), trt.values())# with = "lines"
>
> world = Gnuplot.File(conf.gnuplot_world,"lines")# with = "lines"
>
> donde ahora esta "lines" antes estuvo with = "lines" pero esto en python2.6 
> da el error ya mencionado.

Es posible que el truco funcione.

Hacerte notar que el fallo está en Gnuplot, más que en scapy. Aunque
el proyecto python-gnuplot hace tiempo que no se actualiza,
distribuciones como ubuntu han sustituído en gnuplot  'with' por
'with_' (con subrayado), cambiando la API que usan otros paquetes como
scapy:

<http://trac.secdev.org/scapy/changeset/852:055a9be0f2d3>


> Todo parecia funcionar bien hasta que corro este script y me da el siguiente 
> error que me parece no tiene nada que ver con lo que hice ya que el paquete 
> para graficos no lo instale pq no lo necesitaba.
>
> Obtener todos los ip usados en una subred.
> mi subnet mask es 255.255.252.0
> mi direccion ip 10.14.19.12
> por si me equivoque al determinar la direccion de red.(10.14.16.0/22)
>
> from scapy import *
> ans,unans=srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst="10.14.16.0/22"),timeout=2)
> ans.summary(lambda (s,r): r.sprintf("%Ether.src% %ARP.psrc%") )
>
> El error:
>
> Begin emission:
> Finished to send 1024 packets.(aqui todo parece bien)
>
> Traceback (most recent call last):
>   File "D:\Trabajo\scripts\arping.py", line 2, in <module>
>     
> ans,unans=srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst="10.14.16.0/22"),timeout=2)
>   File "C:\Python26\lib\site-packages\scapy.py", line 11295, in srp
>     a,b,c=sndrcv(s ,x,*args,**kargs)
>   File "C:\Python26\lib\site-packages\scapy.py", line 11113, in sndrcv
>     os.write(1, ".")
> OSError: [Errno 9] Bad file descriptor

Da error al intentar escribir en el fichero con id=1, probablemente
stdout/stdin en sistemas linux. Desconozco qué pretende hacer aquí.


> Uso python2.6 pq necesito el modulo MySQLdb y no lo he encontrado para 
> python2.5
> Existe scapy para python2.6 en Windows o MySQLdb para python2.5, de tal 
> manera que no tenga que editar ningun script?

Si no puedes actualizar scapy y sus dependencias, para python 2.5
puedes encontrar mysqldb-1.2.2 en la web de sourceforge:

<http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.2/MySQL-python-1.2.2.win32-py2.5.exe/download>


> Otra cosa probe el script anterior en Ubuntu con el paquete python-scapy 
> instalado y tampoco funciona, en este caso solo se queda haciendo no se que y 
> sin dar ninguna respuesta.

En ubuntu (karmic) el paquete python-gnuplot tiene cambiada en su API
el 'with' por 'with_'. Intenta actualizar scapy y sus dependencias.
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a