Wilf

Reverse IP lookup

Sunday 23rd July 2023 (updated: Monday 1st January 2024)

PHP

Research

Development

As an extension to my 'referer' project I also capture the IP address of the client as they arrive at my site using

$_SERVER["REMOTE_ADDR"]

I thought it would be an interesting exercise to see if I could do a reverse lookup on the IP address to identify any A (address) records held in each case.
I found a useful and free service at ipwho.is.
Using PHP's cURL is was able to provide any IP address and return some cool data.


$id = $_POST["id"];
$ip = $_POST["ipaddress"];

$ch = curl_init('http://ipwho.is/'.$ip);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$ipwhois = json_decode(curl_exec($ch), true);
curl_close($ch);

$country = "";
$flag = "";
$city = "";
$domain = "";

if (isset($ipwhois['country']))
    $country = $ipwhois['country'];

if (isset($ipwhois['flag']['emoji']))
    $flag = $ipwhois['flag']['emoji'];

if (isset($ipwhois['city']))
    $city = $ipwhois['city'];

if (isset($ipwhois['connection']['domain']))
    $domain = $ipwhois['connection']['domain'];

echo "{ \"id\": ".$id.", \"city\": \"".$city."\", \"country\": \"".$country."\", \"flag\": \"".$flag."\", \"domain\": \"".$domain."\" }";     

This was all done using an AJAX call where I used jQuery's .each() function on an arrary of IP's. The printed value is specific to my code requirement. You can see the output by doing a default search on your own IP address: ipwho.is. Neat tool. You can use it for free but there is a limit to the amount of lookups you can do each month.