Выпадающее окно php country by maxmind geoip

Я хотел бы создать выпадающую страну, которая может предварительно выбрать страну пользователя на основе его / ее адреса. например, если пользователь находится в Италии, он должен сначала показать Италию, оставив все остальные страны в списке.

Я много искал, и я начал с загрузки в Maxmind GeoIP API и базу данных. Это то, что я пробовал, и он показывает только обычный раскрывающийся список без предварительного выбора страны по ip:

<select name="" multiple="multiple" width="200px" size="10px"> <?php require 'vendor/autoload.php'; //I put this is /var/www where my php file is $gi = geoip_open('/usr/local/share/GeoIP/GeoIP.dat', GEOIP_STANDARD); $ip = $_SERVER['REMOTE_ADDR']; echo $ip; $preselect_country = geoip_country_code_by_addr($gi, $ip); //newCountry.php is where I select all countries for drop down list include('newCountry.php'); while ($line = mysql_fetch_array($result)) { if($preselect_country == $line){ $selected = "selected"; }else{ $selected = ""; } ?> <option value="<?php echo $line['country'];?>"<?php echo $selected; ?>><?php echo $line['country'];?> </option>; <?php } ?> geoip_close($gi); ?> </select> 

Я действительно изо всех сил пытался найти решение самостоятельно, я прочитал все эти подобные вопросы и попробовал также другие решения, такие как: автоматическое раскрытие на основе страны с помощью Geoplugin , получение текущего имени страны с использованием ip-адреса в php , получение страны IP-адреса с PHP , Получение страны-посетителя из их Ip и многие другие, но я не знаю, почему это не работает. Я пробовал этот код, который работал, поэтому я нашел, что могу получить ip:

  $ip = $_SERVER['REMOTE_ADDR']; echo $ip; 

Также этот образец работал для меня (выход ES Испания),

 <?php require 'vendor/autoload.php'; $gi = geoip_open("/usr/local/share/GeoIP/GeoIP.dat",GEOIP_STANDARD); echo geoip_country_code_by_addr($gi, "80.24.24.24") . "\t" . geoip_country_name_by_addr($gi, "80.24.24.24") . "\n"; geoip_close($gi); ?> 

но если я попробую точно такой же код, просто заменив «80.24.24.24» на $ ip, он ничего не вернет !!

#EDIT: Ну, спасибо @vch, я обнаружил, что проблема связана с моим ip, поскольку это для частной сети, поэтому я получил реальный IP-адрес ip ifconfig и использовал его в своем коде, и он работал хорошо. До этого момента я обнаружил, что нет никаких проблем с geoip api, который я установил, а также выпадающий предварительный выбор работает хорошо.

Это новый код:

 <select name = "question" class = "question" id = 'Question'> <?php require 'vendor/autoload.php'; $gi = geoip_open('/usr/local/share/GeoIP/GeoIP.dat', GEOIP_STANDARD); $ip = "131.175.122.222"; $preselect_country = geoip_country_name_by_addr($gi, $ip); include('newCountry.php'); while ($line = mysql_fetch_array($result)) { if($preselect_country == $line['country']){ $selected = "selected"; }else{ $selected = ""; } echo "<option value=\"{$line['country']}\" {$selected}>{$line['country']}</option>\n"; } geoip_close($gi); ?> </select> в <select name = "question" class = "question" id = 'Question'> <?php require 'vendor/autoload.php'; $gi = geoip_open('/usr/local/share/GeoIP/GeoIP.dat', GEOIP_STANDARD); $ip = "131.175.122.222"; $preselect_country = geoip_country_name_by_addr($gi, $ip); include('newCountry.php'); while ($line = mysql_fetch_array($result)) { if($preselect_country == $line['country']){ $selected = "selected"; }else{ $selected = ""; } echo "<option value=\"{$line['country']}\" {$selected}>{$line['country']}</option>\n"; } geoip_close($gi); ?> </select> 

Теперь мой вопрос: как получить реальный интернет-доступ пользователей, если они используют такие частные сети, как я?

Все идеи высоко ценятся,

Благодаря,