简体   繁体   English

如何通过IP地址或精确位置获取用户的经度和纬度

[英]How to obtain latitude and longitude of a user by IP address or pinpoint location

I want to get the geolocation (latitude and longitude) of a computer user by a php script. 我想通过php脚本获取计算机用户的地理位置(经度和纬度)。 I was using this one 我正在使用这个

<?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;

?>

but the problem is that this uses real adresses and I just want the user to log in, ask him for the permission to track him (allow location) and if he accepts obtain the desired values (longitude and latitude). 但问题是,这使用真正的地址 ,我只是希望用户登录,询问他是否有权跟踪他(允许位置)以及他是否接受获得所需的值(经度和纬度)。 It could be by an IP adress or another way to pinpoint his location but the thing is I wanted this method to be pratically flawless regarding proxies and fakies. 这可能是由一个IP地址或另一种方式来找出他的位置,但事情是,我想这个方法是pratically无瑕关于代理和fakies。 Any idea on how I could do this? 有关如何做到这一点的任何想法? Thank you very much! 非常感谢你!

I think this is what you want.simple and easy to use.Thanks to HTML5 see source here 我认为这就是你想要的。简单易用。感谢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>

download 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 , 下载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 please convert GeoLiteCity.dat.gz to GeoLiteCity.dat and put in geoip named folder GeoLiteCity.dat - http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz请将GeoLiteCity.dat.gz转换为GeoLiteCity.dat并输入geoip命名文件夹

    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 />" ; 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM