HaraldScan v0.31 - Bluetooth discovery scanning

The scanner will be able to determine Major and Minor device class of device, as well as attempt to resolve the device’s MAC address to the largest known Bluetooth MAC address Vendor list.

The goal of this project is to obtain as many MAC addresses mapped to device vendors as possible.

HaraldScan v0.31 Released

  • Added -u option to update MACLIST to most recent version. Added proper GPLv3 disclaimer and License Fixed other minor bugs (mostly not noticed by users).
JPEG - 9.2 kb

Requirements Linux: Python 2.6, Pybluez, PySQLite.

Requirements OS X: Python 2.5 (Must be able to import objc with python), Lightblue, PySQLite.


  • -b —build

    This option builds the MACLIST database and ignores all other command line arguments. This must be run the first time you run Harald Scan or else there is no database to reference from, A error will tell you as much if you ignore this warning.

  • -h —help

    Brings up the help menu. Self explanitory.

  • -u

    Updates the MACLIST if there are updates and rebuilds the database (requires and Internet connection).

  • -w —write file

    Writes the device table to a file each time new devices are found. The filename must be specified in the file argument for it to be valid. There is no checks on the file and will overwrite any existing file without prompting. This file will be in the directory you run Harald Scan from.

  • -s —service

    Does a service scan on every device that it discovers. It then saves a file with all the info in it, the same way as when a vendor is ’Unknown’. This slows down discovery significantly and is recommended against but some may want this feature for testing.


  1. Unpack to a directory
  2. Run python haraldscan.py -b to build database
  3. python haradscan.py [Options] to run Harald Scan

Post scriptum

Compliance Mandates

  • Network Discovery :

    PCI DSS 11.2, SOX A13.3, GLBA 16CFR Part 314.4(c), HIPAA 164.308(a)(8), FISMA RA-5


Related Articles

Network Discovery