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/