36 lines
1.1 KiB
PHP
36 lines
1.1 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
header('Access-Control-Allow-Origin: *');
|
|
|
|
function getIPv4() {
|
|
$ipv4 = '';
|
|
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
|
$ipv4 = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
|
} else if (isset($_SERVER['HTTP_CLIENT_IP'])) {
|
|
$ipv4 = $_SERVER['HTTP_CLIENT_IP'];
|
|
} else {
|
|
$ipv4 = $_SERVER['REMOTE_ADDR'];
|
|
}
|
|
return filter_var($ipv4, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? $ipv4 : '';
|
|
}
|
|
|
|
function getIPv6() {
|
|
$ipv6 = '';
|
|
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
|
$ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
|
|
foreach ($ips as $ip) {
|
|
if (filter_var(trim($ip), FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
|
|
$ipv6 = trim($ip);
|
|
break;
|
|
}
|
|
}
|
|
} else if (isset($_SERVER['REMOTE_ADDR']) && filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
|
|
$ipv6 = $_SERVER['REMOTE_ADDR'];
|
|
}
|
|
return $ipv6;
|
|
}
|
|
|
|
echo json_encode([
|
|
'ipv4' => getIPv4(),
|
|
'ipv6' => getIPv6()
|
|
]);
|