Чтобы иметь возможность включить 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