This add-in can grab coordinates of an IP address along with other geographical information and put it into a JMP data table.
It uses the GeoLite2 database data downloaded from MaxMind.com. You can take a column from a JMP table of IP Addresses and get another table with several peices of information about the IP Adresses location, including Logitude and Latitude. Currently, this only works for IPv4 addresses.
Please note, the first time you run the add-in, it will download the MaxMind data and import them as JMP data tables. Once it has been downloaded once, the add-in should launch immediately when run. If you re-install the add-in, the data will need to be downloaded again.
Below is a screenshot of the add-in after being launched from the add-ins menu. Select the appropriate table and the column that contains your IPv4 adresses. Click the Go button to create a new table with geolocation information.
After clicking Go, you will get a table similar to the screenshot below. These IP addresses listed below were randomly generated.
You can either use the Tables > Join or the new Virtual Join feature in JMP 13 to join your data together to plot. Below is a quick graph that I put together based on the data table above using Graph Builder and US State outlines.
This add-in is supported for JMP 13 and higher.
Version 1.1 (February 7, 2017)
Changelog:
Version 2.0 (April 15, 2018)
Changelog:
Hi Justin,
this add-in doesn't seem to work JMP 16.0.0
I get this error message. does this plug-in work for this version of JMP?
Hi @ba2 ,
i also came across the issue that this add-in is not working properly anymore.
yet, i found a way to DIY the process in a few simple steps.
i did the following:
get the csv files from maxmind.com. i have concatenated the ipv4 and ipv6 files to streamline the next few steps.
there you will find a column called network which is the key. in jmp create a new column using this script:
New Column("Column 1", Character, "Nominal", Formula(Word(1, :network, "/"));
in your list of ips table create a new column using this script:
New Column("Column 4", Character, "Nominal", Formula(If(Contains(:ips, ":") > 0, Substr(:ips, 1, 12) || "::", Word(1, :ips, ".") || "." || Word(2, :ips, ".") || "." || Word(3, :ips, ".") || ".0")));
at this point you can join or update the two tables and should get all the information available from maxmind on your data.
please let us know if it works for you.