Copy the code below:
<?php
$ip = $_SERVER['REMOTE_ADDR']; //Hardcoded public IP for testing...need to change to $_SERVER['REMOTE_ADDR'];152.27.44.2
// Check if IP is valid AND public (not private or reserved)
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
// Run your API code ONLY if public IP
$response = file_get_contents("https://ipwho.is/$ip");
if ($response !== false) {
$data = json_decode($response, true);
if (isset($data['success']) && $data['success']) {
echo "Your public IP is: " . $ip . "<br>";
echo "Country: " . $data['country'];
echo "<br>City: " . $data['city'];
} else {
echo "API lookup failed.";
}
} else {
echo "Could not connect to geolocation service.";
}
} else {
// Private / Internal IP
echo "Your IP address ($ip) is internal (private network).";
}
?>