Mostrando entradas con la etiqueta python. Mostrar todas las entradas
Mostrando entradas con la etiqueta python. Mostrar todas las entradas

Saber que números tienen whatsapp

Buenas noches SQLeros espero este año nuevo tengan la dicha de realizar todas sus metas y hacer lo que les guste.

El día de hoy les comparto rápidamente un script en Python para saber los números que tienen whatsapp en su localidad.

El código es el siguiente:




Python 2.x

import urllib
import urllib2
import random
import time
url = "https://sro.whatsapp.net/client/iphone/iq.php"
post_data_dictionary = {"cd":"1", "cc":"52","me":"","u":""}
for x in range(2291010000,2291010500):
    post_data_dictionary["me"] = x
    print "Consultando Numero: %s" % (x)
    #sets the user agent header
    http_headers = {"User-Agent":"Mozilla/4.0 (compatible; MSIE 5.5;Windows NT)"}

    post_data_encoded = urllib.urlencode(post_data_dictionary)
    request_object = urllib2.Request(url, post_data_encoded, http_headers)

    response = urllib2.urlopen(request_object)
    html_string = response.read()
    if(html_string.find("<dict>")>0):
        print "%s Tiene WhatsApp" % (x)
        try:
            # This will create a new file or **overwrite an existing file**.
            f = open("whatsappNumbers.txt", "w")
            try:
                f.write("%s\n" % (x)) # Write a string to a file
            finally:
                f.close()
        except IOError:
            pass
    await = random.randrange(1,5)
    print "await %s seconds..." % (await)
    time.sleep(await)


Para Python 3.x

import urllib.request, urllib.parse, urllib.error
import urllib.request, urllib.error, urllib.parse
import random
import time
url = "https://sro.whatsapp.net/client/iphone/iq.php"
post_data_dictionary = {"cd":"1", "cc":"52","me":"","u":""}
for x in range(2351000239,2351010001):
    post_data_dictionary["me"] = x
    print("Consultando Numero: %s" % (x))
    #sets the user agent header
    http_headers = {"User-Agent":"Mozilla/4.0 (compatible; MSIE 5.5;Windows NT)"}

    post_data_encoded = urllib.parse.urlencode(post_data_dictionary)
    binary_data = post_data_encoded.encode("utf-8") 
    request_object = urllib.request.Request(url, binary_data, http_headers)

    response = urllib.request.urlopen(request_object)    
    html_string = response.read()
    if(html_string.decode().find("<dict>")>0):
        print("%s Tiene WhatsApp" % (x))
        try:
            # This will create a new file or **overwrite an existing file**.
            f = open("whatsappNumbers.txt", "a")
            try:
                f.write("%s\n" % (x)) # Write a string to a file
            finally:
                f.close()
        except IOError:
            pass
    #await = random.randrange(1,5)
    #print("await %s seconds..." % (await))
    #time.sleep(await)


¡Listo! Ya es cosa de que se pongan a jugar con los números y ver combinaciones... Como tip a los 5000 números el server de WA te bloquea... :3

¡Saludos y Feliz año 2013!

Tip SQLeros: Excel con Python

Bueno amigos el día de hoy me paso de rápido por el blog para compartir un tip con ustedes. Es como usar un archivo de Excel desde Python con la biblioteca

Enviar archivos por bluetooth con Python


Manejar dispositivos con bluetooth es bastante fácil utilizando Lightblue.
Lightblue proporciona un acceso sencillo a:
  • La detección de dispositivos y de servicios (con y sin GUI)
  • Interfaz de sockets estándar para RFCOMM y L2CAP
  • Envío y recepción de archivos a través de OBEX
  • La publicación de los servicios de RFCOMM y OBEX
  • Información sobre el dispositivo.
Consulta la documentación de la API para más detalles.
Pueden buscar esta librería en los repositorios de su distribución de linux o bajar los binarios de la pagina oficial.
El código básico para enviar una imagen es el siguiente.
import lightblue
# mac y nombre de los dispositivos detectados
lightblue.finddevices()
#devolverá la mac, canal y protocolo de comunicacion disponibles de los dispositivos, para el envio de archivos el mio es el 8, OBEX Object Push
lightblue.findservices()
#se crea la variable con la direccion mac y el canal del dispositivo
cliente = lightblue.obex.OBEXClient('xx:xx:xx:xx:xx:xx',8)
#despues de conectarse correctamente se enviara un mensaje como este..
#<OBEXResponse reason='OK' code=0x20 (0xa0) headers={}>
cliente.connect()
#lo que enviamos
putresponse = cliente.put({"name": "luis.txt"}, file("luis.txt", 'rb'))
cliente.disconnect()
Lo guardan y desde la terminal pueden ejecutarlo como:
$ python  codigo.py
Fuente: El FrameWork de Luis

Leer y escribir un archivo con Python


Para abrir un archivo en Python se utiliza la función open. Ésta devuelve un objeto del tipo archivo, que tiene métodos y atributos.
Entre sus atributos se pueden citar:

  • mode: modo de apertura del archivo
  • name: nombre del archivo
  • closed: estado del archivo (abierto o cerrado)
Y métodos como:

  • seek: mueve la posición actual dentro del archivo
  • tell: confirma que la posición actual ha cambiado
  • read: lee un número especificado de bytes (o todo el archivo)
  • readline: lee una línea
  • readlines: lee todas las líneas y devuelve una lista
  • write: escribe en un archivoclose: cierra un archivo
Veamos el siguiente ejemplo (basado en los ejemplos de Inmersión en Python). La aplicación recibe por parámetro el nombre de un archivo MP3, del mismo se lee la información del ID3 tag y permite al usuario el ingreso de una nuevo comentario.

import sys
def nstring(s, n):
  s= s[:n]
  return s + (' ' * (n - len(s)))
if(len(sys.argv) > 1):
  filename = sys.argv[1]
  print "Abro archivo: " + filename
else:
  print "Pase por argumento el nombre de un archivo MP3"
  exit()
try:
  mp3=open(filename,'r+b')
  try:
    mp3.seek(-128,2)
    print mp3.read(3)
    print "Nombre..........: " + mp3.read(30)
    print "Artista.........: " + mp3.read(30)
    print "Album...........: " + mp3.read(30)
    print "Anio............: " + mp3.read(4)
    print "Comentario......: " + mp3.read(30)
    print "Genero..........: " + mp3.read(1)
    comentario = raw_input("\nSu comentario...: ")
    mp3.seek(-31,2)
    mp3.write(nstring(comentario,30))
    mp3.seek(-31,2)
    print "Nuevo comentario: " + mp3.read(30)
  finally:
    mp3.close()
except IOError:
  print ("IO Error");
  exit()

Es todo, espero les sirva este sencillo ejemplo... =)

Python 4 Android


Me tomo un relax de algunas horas, para encontrar algo con que distraerme, y recorde la existencia de un proyecto que permitia usar Python para correr aplicacion Android, opte por probarlo y escribir un articulo al respecto.

Android Scripting


Si no eres fanatico de Java, o si eres un amante de scripting particularmente de python o simplemente te gusta cambiar de vez en cuando lo aburrido de las llaves y los punto y comas y ademas quieres trabajar con Android, pues bien SL4A te parecera una buena opcion. (Si no la unica ¬¬). La descripcion del proyecto va asi:


Scripting Layer for Android (SL4A) lleva los lenguajes de scripting a Android, permitiendo editar y ejecutar script de manera interactiva directamente en dispositivos Android. Estos script tienen accesos a muchas APIS disponibles en el dispositivo, pero con una interfaz increiblemente simple que permite accederlos de forma sencilla.



Hay una guia detallada Practical Android Project que te guia paso a paso sobre lo que debes hacer. Pero aqui tienes mi confusa explicacion de como hacerlo.


Manos a la obra


Existen dos formas de hacer esto, hacerlo directamente desde el dispositivo o bajarlo en tu ordenador y luego instalarlo con el ADB con el siguiente comando:

> adb install sl4a.apk


En lo personal prefiero hacerlo desde el telefono, me ahorro abrir la terminal, para hacerlo abre el navegador y descargalo desde el sitio del proyecto. Asi que operacion "Descarga e Instala", te dira que necesita muchas  y muchos permisos, dandole el voto de confianza acepta e instala.



Ahora ya tienes SL4A, pero te hace falta algo, y no es amor es el interprete para ello  necesitaras otro APK de Python For Android, igualmente en el sitio oficial puedes descargarlo.



Una vez que necesitas extraer los extras para tener los script de python y curosear el codigo y como se ejecuta.



Ahora si puedes ver la cantidad de Script en la aplicacion SL4A alli tienes para empezar a ver ejemplos basicos de SL4A.




Todos corren de maravilla, y todos los puedes editar "on the fly" como es costumbre con las aplicaciones python. Algo que me fascino es la simplicidad de los script, el hell_world.py se destaca, son 4 lineas de codigos en lo que en Android Java me tomaria al menos diez tan solo en la clase. Aqui el codigo


import android
droid = android.Android()
droid.makeToast('Hola Mundo')
print 'Hola Mundo'

La aplicacion tambien te permite correrlo en consola, ejecutarlo, modificarlo, renombarlo o eliminarlo.

Otra caracteristica super util es que te permite ver las trazas:



Perspectivas del proyecto

Es probable que siga jugando con SL4A, lo recomiendo ya sea si quieres empezar con Android y no te gusta java, o estas aburrido en la noche y quieres distraerte un poco, aprenderas una ó dos cosas nuevas, garantizado!

Si te preguntas si puedes llegar al mercado de Android con esto, pues lo creas o no, esto no es un juguete es una manera de desarrollar aplicaciones real!. La documentacion incluye la manera en como puedes crear Scripting as APK. Y si ya existen app con esto incluido. TaskBom es una de ellas.

Existen otros proyectos similares que portan lenguajes a la plataforma Android. Dos que me llaman la atencion son:

Scala 4 Android(Una buena excusa para aprender scala)

Un detalle final, me sorprendio, sino me asusto la cantidad de tutoriales para esta herramienta en el sitio oficial, si de algo se ha caracterizado python desde el principio es de su documentacion extrema y este proyecto no excepcion, no hay excusas par ano pasar unas horas probando y quien sabe si te gusta quizas hagas un DroidCopter:

Google Over SSL

Hace unos pocos días, fue de conocimiento público el hecho de que Google había estadorecolectando datos de redes Wi-Fi abiertas a través de sus vehículos asociados con el servicio Google Street View. Una oleada de protestas y dos demandas después, el asunto parece haber sido corregido en Mountain View, aunque la ignorancia por parte de miles de usuarios al dejar sus redes Wi-Fi completamente abiertas y sin una protección eficientesigue tan vigente como antes del incidente (N. del. R.: Cierren sus redes. No es broma.). Mientras tanto, Google se encuentra trabajando sobre una capa extra de protección para los resultados de las búsquedas hechas en su motor. En otras palabras, ha aparecido unaversión beta del clásico portal de Google, con una conexión segura utilizando el protocolo criptográfico SSL.




Google SSL



es Facebook. La gente acostumbra a ingresar a la red social con la clásica dirección WWW, pero si agregan una "s" al http, verán que Facebook tiene certificado de seguridad, y es compatible con esta clase de conexión. Google ha incluido conexiones seguras en varios de sus servicios, como es el caso de Gmail, pero ahora es el turno del portal de búsquedas. Actualmente el servicio se encuentra en fase beta, y es posible que los usuarios obtengan un rendimiento inferior al acostumbrado, pero lo hemos estado probando desde hace un buen rato, y no hemos tenido inconveniente alguno.

Tal vez pase algún tiempo hasta que la conexión segura en el portal de búsquedas de Google se convierta en la opción por defecto. Google ha explicado que la conexión segura sólo encripta las palabras claves y los resultados enviados. En caso de que el ordenador se encuentre infectado por alguna clase de malware o keylogger que pueda registrar la actividad del usuario, dicha conexión segura sería irrelevante, pero nunca está de más contar con una capa extra de seguridad. Desde todo punto de vista esto se ve como una especie de compensación ante el "error" cometido con los coches de Google Street View. No es necesario decir que Mountain View deberá tener más cuidado para la próxima, pero esto ha servido para que los usuarios obtengamos algo mejor. Después de todo, las búsquedas encriptadas no suenan nada mal.

Soporte Mono Touch para Ipad

A tan solo 24 hrs de la salida del SDK para Ipad, se ha completado el soporte para Mono Touch, Segun Miguel de Icaza en su blog. Otro de los colosales avances en la era de programación con Mono. Usando el esperanto de los lenguajes de programación.

MonoDevelop 2.2 Beta 1: We go cross platform.

MonoDevelop goes cross platform.

Since the beginning of time, man has yearned to get a cross platform .NET IDE. Homer's Odyssey described one man's effort to achieve such a thing. And it was not until today, September 9th of 2009 that the world can test out such a tool.

With this release MonoDevelop leaves its cozy Linux nest and embarks on a wild adventure into the hearth of MacOS and Windows. The MonoDevelop team made this one of their major goals for this release: to turn our loved IDE into a cross platform IDE.

If you are curious about the details, check out the What is new in MonoDevelop 2.2 page.



MonoDevelop on Windows

We are not only bringing MonoDevelop to OSX and Windows as a plain GUI port, but we are also providing installers, deep operating system integration and support for native debugging on each platform.



MonoDevelop on MacOS X

In addition to becoming a cross platform IDE, there are many new features in MonoDevelop.

For instance, MonoDevelop can be used to develop ASP.NET MVC applications on OSX and Linux and Silverlight applications on OSX and Linux.

Debugger


MonoDevelop now has integrated debugger support. Not only it is able to debug Mono applications, it also can work as a frontend to GDB to debug native applications.

In addition, on Linux it is possible to debug ASP.NET pages.

New Add-ins


New exciting add-ins: ASP.NET MVC, Silverlight and iPhone (for use with MonoTouch).

Policies


A common problem that we face as open source developers is that not every project uses the same coding style. Different teams use different coding conventions. MonoDevelop now supports policies to describe how files should be edited and what defaults should be used in each:


Editor Improvements


My favorite new feature is Dynamic Abbrev (Alt-/) a feature that we brought from Emacs and that fills me with joy. That being said, for the non-Emacs lovers there are plenty of features that you asked for, and that we implemented:

  • Extensive refactoring support. And I mean, it is extensive.

  • Code templates.

  • On the fly formatting.

  • Acronym Matching in Code Completion

  • XML Documentation Shown in Code Completion

  • VI mode for those users hooked up on VI commands, they can now use those within MonoDevelop.


Another pretty cool feature is the code generation support that is triggered with Alt-Insert. When you press Alt-insert it will popup a context sensitive dialog box that offers a few options of code that could be generated at this point: ToString methods, Equals/GetHashCode methods all based on existing fields and properties.

Why go Cross Platform?


Going cross platform means that developers will have the same tool across all of the operating systems they use: Windows, Mac and Linux.

.NET developers that have been enchanted by OSX will be able to continue developing software with their favorite programming languages while enjoying OSX and will be able to go back and forth between Windows, OSX and Linux as needed. This also means that they can work with developers in other platforms, regardless of the personal choices of other team members.

As many of you know, the number of contributors to a project is linked to the number of users of that project. By expanding our market presence from Linux, we expect to get contributions, fixes, improvements, bug reports, code and add-ins from developers in other platforms.

We intend to make MonoDevelop the Eclipse of the .NET community. Just like Eclipse became the foundation for Java development, we hope that MonoDevelop will become the foundation for .NET development, and hopefully for much more than that.

A multi-system IDE


We are not religious when it comes to supporting other programming languages [1]. We want to embrace not only .NET-based projects like Gtk#, Silverlight, ASP.NET, Boo, C#, F#, Visual Basic and Windows.Forms. We are also embracing other developer platforms like Python, C/C++, Vala, and we want to expand our presence to work with the Flash, PHP, Ruby, Rails, Flex and any other communities that need a cross platform IDE.

[1] we are just religious about the fact that C# is a better programming language to build an IDE than Java is.

Thanks!


This release could not have been possible without the endless nights and the collaborations of our contributors and all of the end users that reported bugs and gave us feedback.

Posted by Miguel de Icaza on 09 Sep 2009