Skip to content

Instantly share code, notes, and snippets.

@scramblr
Last active March 29, 2024 08:13
Show Gist options
  • Save scramblr/992af223743e725a272ed2396f2843ea to your computer and use it in GitHub Desktop.
Save scramblr/992af223743e725a272ed2396f2843ea to your computer and use it in GitHub Desktop.
code for IP echo service like ip.urls.is
<?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