Last active
March 29, 2024 08:13
-
-
Save scramblr/992af223743e725a272ed2396f2843ea to your computer and use it in GitHub Desktop.
code for IP echo service like ip.urls.is
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$http_client_ip = ''; | |
$http_x_forwarded_for = ''; | |
$remote_addr = $_SERVER['REMOTE_ADDR'] ?? ''; | |
$remote_host = ''; | |
$remote_port = $_SERVER['REMOTE_PORT'] ?? ''; | |
$remote_user = ''; | |
$redirect_remote_user = ''; | |
$http_user_agent = $_SERVER['HTTP_USER_AGENT'] ?? ''; | |
if (isset($_SERVER['HTTP_CLIENT_IP'])) | |
{ | |
$http_client_ip = $_SERVER['HTTP_CLIENT_IP']; | |
} | |
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) | |
{ | |
$http_x_forwarded_for = $_SERVER['HTTP_X_FORWARDED_FOR']; | |
} | |
if (isset($_SERVER['REMOTE_HOST'])) | |
{ | |
$remote_host = $_SERVER['REMOTE_HOST']; | |
} | |
if (isset($_SERVER['REMOTE_USER'])) | |
{ | |
$remote_user = $_SERVER['REMOTE_USER']; | |
$remote_user = $_SERVER['REMOTE_USER']; | |
} | |
if (isset($_SERVER['REDIRECT_REMOTE_USER'])) | |
{ | |
$redirect_remote_user = $_SERVER['REDIRECT_REMOTE_USER']; | |
} | |
$api_url = 'http://api.hostip.info/get_html.php?ip='. $remote_addr .'&position=true'; | |
$response = @file($api_url); | |
if ($response) { | |
foreach ($response as $line) { | |
$line = trim($line); | |
if (!empty($line)) { | |
// Fixed up this area of code using ChatGPT which helped us get rid of using a bunch of explodes() and now use lists instead. | |
if (strpos($line, ': ') !== false) { | |
list($key, $value) = explode(': ', $line); | |
$array[$key] = $value; | |
} | |
} | |
} | |
$country = isset($array['Country']) ? $array['Country'] : ''; | |
$city = isset($array['City']) ? $array['City'] : '(Unknown city)'; | |
$location = $city .', '. $country; | |
$lat = isset($array['Latitude']) && isset($array['Longitude']) ? $array['Latitude'] : ''; | |
$long = isset($array['Latitude']) && isset($array['Longitude']) ? $array['Longitude'] : ''; | |
$latlong = (empty($lat) && !empty($long)) ? $lat .','. $long : ''; | |
echo "HTTP_CLIENT_IP: ". $http_client_ip . "<br>"; | |
echo "HTTP_X_FORWARDED_FOR: ". $http_x_forwarded_for . "<br>"; | |
echo "REMOTE_ADDR: ". $remote_addr . "<br>"; | |
echo "HTTP_X_FORWARDED_FOR: ". $http_x_forwarded_for . "<br>"; | |
echo "REMOTE_ADDR: ". $remote_addr . "<br>"; | |
echo "REMOTE_HOST: ". $remote_host . "<br>"; | |
echo "REMOTE_PORT: ". $remote_port . "<br>"; | |
echo "REMOTE_USER: ". $remote_user . "<br>"; | |
echo "REDIRECT_REMOTE_USER: ". $redirect_remote_user . "<br>"; | |
echo "HTTP_USER_AGENT: ". $http_user_agent . "<br>"; | |
echo "LOCATION: ". $location . "<br>"; | |
echo "LAT/LONG: ". $latlong . "<br>"; | |
} else { | |
echo "Unable to retrieve location information."; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment