Título: python wifi macs bajo windows Publicado por: winnipu en 21 Julio 2016, 10:20 am Hola, alguien sabe que librerias hay que usar con python y corriendo bajo windows para ver las macs de los router wifi que hay en un determinado lugar?
Mi intencion es correr un script python que me muestre el nombre de las redes wifi, y las mac de sus routers que hay al alcance de mi antena. He encontrado este codigo para python 2.7 pero quisiera actualizarlo a 3.4 y no se como hacerlo. No se como solventar lo de map para 3.4 Código: import subprocess Título: Re: python wifi macs bajo windows Publicado por: tincopasan en 21 Julio 2016, 15:01 pm 1) deberías saber que devuelve(tipo) cmd.stdout
2)la diferencia de map entre las versiones es que en 3.x devuelve un objeto, lo cual se solventa pasandolo a lista 3)igual si map no te gusta(en 3.x algunos lo desprecian) podés usar compresión de listas 4)y más importante ¿que querés solventar? ¿dónde pusiste el error que te da? salvo como dije lo quieras cambiar. 5)debuggeando el código no es tan difícil. Título: Re: python wifi macs bajo windows Publicado por: winnipu en 22 Julio 2016, 08:20 am Como bien dices al ser cmd.stdout me genera este error:
l = map(lambda x: x.strip(), line.strip().split(":")) TypeError: 'str' does not support the buffer interface Trato de hacer un cast a map pero si lo hago me genera el mismo error. Realmente no controlo la funcion map y eso es lo que me esta generando el problema. Título: Re: python wifi macs bajo windows Publicado por: tincopasan en 22 Julio 2016, 16:03 pm tengo la sensación de que escribo en arameo, no importa nada que ponga
Citar 1) deberías saber que devuelve(tipo) cmd.stdout Código
Citar 5)debuggeando el código no es tan difícil. >>> <class 'bytes'> lo cual me lleva a: Código
>>> builtins.TypeError: 'str' does not support the buffer interface ¿y dónde esta map? ahhhhh, ahora veo, map no tiene nada que ver!!!! hay tantas soluciones que da asco, pero solo voy a mostrarte una posible, porque en realidad parece que no te interesa aprender, sólo copiar. Código
>>> <class 'list'> milagro!!! ya devuelve una lista y no da el error!!! pero... no es código original, bueno Código
>>> <map object at 0x0267B5D0> >>> <class 'map'> Citar 2)la diferencia de map entre las versiones es que en 3.x devuelve un objeto, lo cual se solventa pasandolo a lista o sea, ¿algo así? Código
>>> <class 'list'> guauuuu lo que es la ciencia!!!! pero.... Citar 3)igual si map no te gusta(en 3.x algunos lo desprecian) podés usar compresión de listas ¿en que idioma está eso? no sé, pero buscando un poco en google Código
y da lo mismo!!!, ah no, para, no puse los resultados de l, bueno si llegas a entender esto, poné print(l) y miralo vos. Citar 4)y más importante ¿que querés solventar? ¿dónde pusiste el error que te da? salvo como dije lo quieras cambiar. que bueno que entre algunos puntos, este se entendió! Citar Como bien dices al ser cmd.stdout me genera este error: l = map(lambda x: x.strip(), line.strip().split(":")) TypeError: 'str' does not support the buffer interface Trato de hacer un cast a map pero si lo hago me genera el mismo error. Realmente no controlo la funcion map y eso es lo que me esta generando el problema. y como dije antes¿que tiene que ver map? en fin suerte en tu copia y pega de código, ahhh usa python 2.7 y te ahorrás aprender 3.X Saludos. |