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()
 | 
						|
]); 
 |