Skip to main content.

Febrero 27, 2008

btwho - Conocer la marca de un teléfono vía su MAC Bluetooth

Se nos acaba de presentar un proyecto para el envío de ficheros desde un host a dispositivos móviles por medio de protocolo bluetooth. Protocolos obex aparte (eso es otra historia), nos veíamos en la necesidad de conocer la marca del móvil destino antes de enviar el contenido, así que tras destripar las herramientas hcitool y sdptool, nos hemos encontrado con que un móvil no te dice claramente de que marca es, al menos, mediante ningún protocolo bluetooth.

¿Cómo saber la marca de un móvil conociendo sólo su dirección MAC bluetooth?

Al igual que las direcciones MAC de dispositivos ethernet, para bluetooth también existe un convenio que te permite conocer que fabricante tiene asignado un rango de direcciones MAC. Googleando un poco enseguida aparece esto: http://standards.ieee.org/regauth/oui/oui.txt, al parecer el listado oficial de esas direcciones MAC.

Es relativamente fácil parsear ese fichero, meterlo en una base de datos MySql y consultarlo cada vez que quieras. Incluso sería una posibilidad, scriptear un post de búsqueda a esa misma página del ieee (aquí está el formulario de búsqueda) para conocer de que propietario es que MAC bluetooth. El caso es que yo quería tener un sólo script, y no depender ni de MySQL ni de tener Internet. Y sobre todo velocidad (de acuerdo, para velocidad debería usar MySQL).

El resultado: btwho. Un script PHP, mini-base de datos y que se actualiza él solito.

¿Cómo funciona?

Updateando btwho

El primer modo de ejecución de btwho es “modo update”:

jabi@Iron-Jabi:~$ ./btwho update
jabi@Iron-Jabi:~$

Este comando descarga de la web de ieee el listado de macs, y se las “guarda” al final del fichero bien indexadas. El fichero se abre a sí mismo en modo escritura, y se guarda serializado, comprimido y en base64 el listado de macs asociadas a sus fabricantes. El fichero a fecha de hoy, con los datos actualizados, pesa sobre 180Kb., mientras que el listado total de MACS original asciende a 1.8MB.

Consultado btwho

Debemos tener una MAC bluetooth…

jabi@Iron-Jabi:~$ hcitool scan
Scanning ...
00:12:62:xx:xx:xx Jabi
00:1B:AF:xx:xx:xx Aktor

ahora simplemente para conocer de que marca son utilizamos btwho:

jabi@Iron-Jabi:~$ ./btwho 00:1B:AF:xx:xx:xx
Nokia Danmark A/S

Si por casualidad nos encontráramos con una MAC que no estuviera listada en el ieee, el script nos devolverá una salida de error (fácilmente scripteable si fuera necesario).

jabi@Iron-Jabi:~$ ./btwho FF:1B:AF:xx:xx:xx
Mac no encontrada.
jabi@Iron-Jabi:~$ echo $?
1

En resumen, un script sencillo, super portable e independiente, y seguro que útil en determinados casos.

Descargarlo aquí.

Posted by Javier Infante Porro in php, bluetooth, phpcli

Un comentario to “btwho - Conocer la marca de un teléfono vía su MAC Bluetooth”

  1. faisan says:

    Tuuuuuuuuuuu! Como molas Ja2!!! Eres un crack!

    PD: Para que te vayas familiarizando, la blogokosa funciona así: yo te adoro el ego en los comentarios, luego tu a mi… y así se va cerrando el ciclo xDDDDDD

Deje un comentario

XHTML: Puede emplear estos tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

2005 © Irontec S.L. :: Powered by Irontec & Wordpress
[ IRONTEC S.L. - C.I.F. B-95274890 ]
[ Ribera de Axpe 11, A - 116 ]
[ 48950 - Erandio - Bilbao - Bizkaia ]