Как получить код страны Raspberry через его сервер PHP?REMOTE_ADDR возвращает локальный IP - PullRequest
0 голосов
/ 24 сентября 2019

Чтобы иметь возможность включить WiFi на Raspberry, мне нужно установить, кроме очевидного ssid и пароля, country= в /etc/wpa_supplicant/wpa_supplicant.conf.Теперь давайте предположим, что мы не могли знать, где эта малина может оказаться.Затем я искал способ получить код страны, используя созданную мной веб-страницу PHP.Я нашел несколько способов сделать это прямо здесь, на SO, но ничего не было окончательным, и методы были очень старыми с парой комментариев, говорящих, что они больше не работают.Это заставило меня больше запутаться.

Наконец, я попытался использовать geoplugin на Raspberry, но безрезультатно:

function getVisIpAddr() { 

    if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
        return $_SERVER['HTTP_CLIENT_IP']; 
    } 
    else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
        return $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } 
    else { 
        return $_SERVER['REMOTE_ADDR']; 
    } 
} 

// Store the IP address 
$vis_ip = getVisIPAddr(); 

$ipdat = @json_decode(file_get_contents( 
    "http://www.geoplugin.net/json.gp?ip=" . $vis_ip)); 

echo 'Country Code: ' . $ipdat->geoplugin_countryCode . "\n";
echo $vis_ip;

Приведенный выше код повторяет Country Code: без действительного кода, а затем приходит локальный IP-адресмой компьютер, потому что это то, что я использую для доступа к нему.Raspberry подключен к той же точке доступа, что и ПК, который обращается к веб-страницам.

Можно ли вернуть IP WAN вместо IP-адреса локальной сети?

ОС: Raspbian Buster Lite

Плата: RPi 4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...