Как получить широту и долготу пользователя по IP-адресу или точному местоположению

Я хочу получить геолокацию (широту и долготу) пользователя компьютера скриптом php. Я использовал этот

<?php // Get lat and long by address $address = $dlocation; // Google HQ $prepAddr = str_replace(' ','+',$address); $geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&sensor=false'); $output= json_decode($geocode); $latitude = $output->results[0]->geometry->location->lat; $longitude = $output->results[0]->geometry->location->lng; ?> 

но проблема в том, что это использует реальные адреса, и я просто хочу, чтобы пользователь зашел в систему, попросил у него разрешения на его отслеживание (разрешить местоположение), и если он согласится получить желаемые значения (долгота и широта). Это может быть IP-адрес или другой способ определить его местоположение, но я хочу, чтобы этот метод был абсолютно безупречным в отношении прокси-серверов и фейки. Любая идея о том, как я могу это сделать? Большое спасибо!

скачать geoip.inc – http://www.maxmind.com/download/geoip/api/php-20120410/geoip.inc , geoipcity.inc – http://www.maxmind.com/download/geoip/api/php -20120410 / geoipcity.inc , geoipregionvars.php – http://www.maxmind.com/download/geoip/api/php-20120410/geoipregionvars.php ,

GeoLiteCity.dat – http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz, пожалуйста, преобразуйте GeoLiteCity.dat.gz в GeoLiteCity.dat и поместите в папку geoip named

  include("application/libraries/geoip/geoipcity.inc"); include("application/libraries/geoip/geoipregionvars.php"); $giCity = geoip_open("application/libraries/geoip/GeoLiteCity.dat", GEOIP_STANDARD); $ip =$_SERVER['REMOTE_ADDR']; $record = geoip_record_by_addr($giCity, $ip); echo "Getting Country and City detail by IP Address <br /><br />"; echo "IP: " . $ip . "<br /><br />"; echo "Country Code: " . $record->country_code . "<br />" . "Country Code3: " . $record->country_code . "<br />" . "Country Name: " . $record->country_name . "<br />" . "Region Code: " . $record->region . "<br />" . "Region Name: " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "<br />" . "City: " . $record->city . "<br />" . "Postal Code: " . $record->postal_code . "<br />" . "Latitude: " . $record->latitude . "<`enter code here`br />" . "Longitude: " . $record->longitude . "<br />" . "Metro Code: " . $record->metro_code . "<br />" . "Area Code: " . $record->area_code . "<br />" ; в  include("application/libraries/geoip/geoipcity.inc"); include("application/libraries/geoip/geoipregionvars.php"); $giCity = geoip_open("application/libraries/geoip/GeoLiteCity.dat", GEOIP_STANDARD); $ip =$_SERVER['REMOTE_ADDR']; $record = geoip_record_by_addr($giCity, $ip); echo "Getting Country and City detail by IP Address <br /><br />"; echo "IP: " . $ip . "<br /><br />"; echo "Country Code: " . $record->country_code . "<br />" . "Country Code3: " . $record->country_code . "<br />" . "Country Name: " . $record->country_name . "<br />" . "Region Code: " . $record->region . "<br />" . "Region Name: " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "<br />" . "City: " . $record->city . "<br />" . "Postal Code: " . $record->postal_code . "<br />" . "Latitude: " . $record->latitude . "<`enter code here`br />" . "Longitude: " . $record->longitude . "<br />" . "Metro Code: " . $record->metro_code . "<br />" . "Area Code: " . $record->area_code . "<br />" ; в  include("application/libraries/geoip/geoipcity.inc"); include("application/libraries/geoip/geoipregionvars.php"); $giCity = geoip_open("application/libraries/geoip/GeoLiteCity.dat", GEOIP_STANDARD); $ip =$_SERVER['REMOTE_ADDR']; $record = geoip_record_by_addr($giCity, $ip); echo "Getting Country and City detail by IP Address <br /><br />"; echo "IP: " . $ip . "<br /><br />"; echo "Country Code: " . $record->country_code . "<br />" . "Country Code3: " . $record->country_code . "<br />" . "Country Name: " . $record->country_name . "<br />" . "Region Code: " . $record->region . "<br />" . "Region Name: " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "<br />" . "City: " . $record->city . "<br />" . "Postal Code: " . $record->postal_code . "<br />" . "Latitude: " . $record->latitude . "<`enter code here`br />" . "Longitude: " . $record->longitude . "<br />" . "Metro Code: " . $record->metro_code . "<br />" . "Area Code: " . $record->area_code . "<br />" ; 

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

 <html> <body> <p id="demo">Click the button to get your coordinates:</p> <button onclick="getLocation()">Try It</button> <script> var x=document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else{x.innerHTML="Geolocation is not supported by this browser.";} } function showPosition(position) { x.innerHTML="Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; } </script> </body> </html> 

Попробуйте IpInfoD http://ipinfodb.com/

это может быть полезно для вас