A Logo

Feel free to include my content in your page via my
RSS feed

Help Irongeek.com pay for
bandwidth and research equipment:

Subscribestar or Patreon

Search Irongeek.com:

Irongeek Button
Social-engineer-training Button

Help Irongeek.com pay for bandwidth and research equipment:


IGiGLE: Irongeek's WiGLE WiFi Database to Google Earth Client for Wardrive Mapping

IGiGLE: Irongeek's WiGLE WiFi Database to Google Earth Client for Wardrive Mapping


        About a year back I created a PHP script to convert raw WiGLE data into a KML file that Google Earth could read. It was a useful script for a wardriver, but it was very convoluted to use since you had to import data from the JiGLE client, paste files together, and have PHP on your box. I decided to re-implement the tool as a standalone AutoIt3 Windows exe, source included (and GPLed). Now you just need this one app (igigle.exe), Google Earth and a WiGLE account to sit on you butt and map out your local wireless networks.

        For those that don't know, WiGLE is an online database of Wireless Access Points (802.11A/B/G) that is contributed to by folks using Netstumbler,Kismet and other war driving tools. WiGLE has a web interface of its own, as well as Java desktop client called JiGLE.  There is also a Google Maps interface for the data made by Meblah, but rendering a map with DHTML can be very slow. That's why I wrote IGiGLE to query WiGLE and turn the data into a KML (Keyhole Markup Language) file that's easy to import into the Google Earth desktop application. With the generated KML file and Google Earth it's easy to view and parse the access points found by you and other WiGLE users.

        I think the interface is fairly self-explanatory, but here is an explanation anyway :).

ZIP/LAT/LONG: There are two ways to query data with IGiGLE, by ZIP or by latitude and longitude. Which input boxes are used depend on which button you click, "By ZIP" or "By Lat/Long".

Variance: The number of degrees to vary the map from it's center point. Don't make it to big, it will take a lot longer, bog down the WiGLE server, and may never return results.

WiGLE User/Pass: Your WiGLE credentials, if you don't have an account make one. Because AutoIt3 uses  IE in the background for downloading the data, and WiGLE's current SSL key is not signed by a recognized CA, I had to pass these credentials in plain-text. In other words: Don't use the same user name and password on WiGLE that you do on something more important like your bank account or email!!!

Show Only My Points: Check this box if you only want WiGLE to return Wireless Access Points you found and uploaded to the database yourself. It's a great way to chart your progress.

By ZIP: Click this button to generate your KML file based on the United States ZIP code. The LAT and LONG text boxes will be ignored.

By Lat/Long: Click this button to generate your KML file based on a given latitude and longitude. The ZIP text box will be ignored.

Date: The oldest "last seen date" to be returned, in the format YYYYMMDDHHMMSS. The default is Jan 1st 2005 at midnight. This allows you to filter out access points what have not be verified in quite awhile.

        You may get some errors if your query is too big (a large variance or a place with a lot of WAPs close together). If you have problems getting a result try modifying your variance to be smaller, double check you user name and password, or try again later. Depending on the kind of load WiGLE is under at the time of your query, your results may vary. If there is a problem with getting the raw tilde delimited data you can test you query by pasting it into a web browser, the query URL is automatically put into your clip board whenever you click the "By ZIP" or "By Lat/Long" buttons.

        When IGiGLE runs its query it first downloads the data to a tilde delimited text file in the same directory as the EXE, called either "<ZIP>.txt" or "<LAT-LONG>.txt" depending on which button you used. After the raw data is downloaded, IGlGLE will make a KML file with all of the wireless network SSIDS in it, called either "<ZIP>.kml" or "<LAT-LONG>.kml". Double click on the KLM file and it should open up in Google Earth.

        You will notice when you open the KML file that there are two different icons for WAPs:

          Obviously, the one on the left is for Access Points without WEP/WPA and the one on the right is for ones with WEP/WPA enabled. If someone wants to make be some better icons I'll use them. Also you'll notice that the WEP and Non-WEP 802.11 access points are split into two folders, this is so you can easily choose to view only open or closed WAPs if you want to. By clicking on a WAPs icon you can find more details about it, such as its BSSID. If you want to turn the KML into a KMZ just ZIP compress it and then rename it with a KMZ extension. This app is still very much it beta, some times the raw data download fails for no know reason. I'm thinking of re-implementing the download function with WGET if I can't get the built-in AutoIt function to work.




    For an example of a saved Google Earth map see the following screen shots:


Happy mapping. For more information on the WiGLE API check out: http://www5.musatcha.com/musatcha/computers/wigleapi.htm . The source code comes along with the package:


Download IGiGLE

If you want more details on how to use it, check out my video Wardrive Mapping With IGiGLE And WiGLE.

If you don't already have Google Earth, download it along with other tools from the pack Google provides:


Happy Mapping!!!

Change Log:

12/6/2014: Uploaded version 0.97. Now uses HTTPS for connecting to WiGLE since they have a properly signed cert. I also added code contributions from njd who updated for WiGLE changes (WiGLE now supports more encryption types). Folders are broken down into WAPs that a Open, WEP, WPA, WPA2 and Unknown.
Uploaded version 0.95 after Dippo pointed out the older version stopped working.
Uploaded version 0.90. Once again, Wigle.net changed the way I had to query their database, so I had to fix IGiGLE so it worked again. I also changed how I got the zip code to lat/long to work. It may also now work with NAC, UTM or a Great Britain telephone area code, but this needs more testing so please let me know.
Uploaded version 0.80. I had to fix some things since Wigle.net added a field to their output, throwing off all of my code. I've also added information to each entry regarding its network type, either infrastructure or ad-hoc.
Uploaded version 0.75. This fixes the "$WS_EX_CLIENTEDGE: undeclared global variable." error when you try to compile with the newer versions of Autoit3. Also, I've added a feature so IGiGLE saves your last used settings to an ini file so you don't have to keep entering them over and over again. 

Printable version of this article

15 most recent posts on Irongeek.com:

If you would like to republish one of the articles from this site on your webpage or print journal please contact IronGeek.

Copyright 2020, IronGeek
Louisville / Kentuckiana Information Security Enthusiast