PHP自动定位用户地理位置

     2023-05-08     15

关键词:

【中文标题】PHP自动定位用户地理位置【英文标题】:Automatically locate a user's geographical location in PHP 【发布时间】:2016-10-14 16:00:55 【问题描述】:

我想在注册到我的网站后在 PHP 中自动定位用户的地理位置和 IP 地址。我该怎么办?

【问题讨论】:

【参考方案1】:

ip-api.com 提供免费的基于 xml 的 api。

要使用他们的 api 获取基于 ip 的位置,您可以使用:

$xml=simplexml_load_file("http://ip-api.com/xml/ipaddress");
echo $xml->RegionName;

【讨论】:

【参考方案2】:

使用 codeigniter,您只需执行 $ip = $this->input->ip_address() 即可显示您的 IP 地址

【讨论】:

【参考方案3】:

您可以使用第 3 方解决方案,例如 http://ipinfodb.com/ip_location_api.php

您也可以使用以下代码:

<?php
$user_ip = getenv('REMOTE_ADDR');
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));
$country = $geo["geoplugin_countryName"];
$city = $geo["geoplugin_city"];
?>

【讨论】:

【参考方案4】:
Just Try This code,this might help you. This a stand alon code you can create a simple file and copy this. But you have to create an google api key for this.  
 <?php
    if(isset($_POST['long'*emphasized text*]) && isset($_POST['lat']))
        $key = 'YOUR-KEY_FROM-GOOGLE-API**strong text**';
        extract($_POST);
        $json = file_get_contents('https://maps.googleapis.com/maps/api/**strong text**geocode/json?latlng='.$lat.','.$long.'&key='.$key);
        $data = json_decode($json,true);
        foreach($data['results'][1]['address_components'] as $numbers)
            if( $numbers['types'][0] == 'administrative_area_level_2')
                echo $numbers['long_name'];
            
        
    else
    ?>
    Location: <span id="location"></span>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.js"></script>
    <script>
    if (navigator.geolocation) 
      window.onload = function() 
      var startPos;
      var geoOptions = 
        maximumAge: 5 * 60 * 1000,
        timeout: 10 * 1000
      

      var geoSuccess = function(position) 
        startPos = position;
        var data = 
            long: startPos.coords.longitude,
            lat: startPos.coords.latitude
        ;
        var results = jQuery.ajax(
            type: 'POST',
            url: '#',
            data: data,
            async:false
            ).responseText;
        document.getElementById('location').innerHTML = results;
      ;
      var geoError = function(position) 
        console.log('Error occurred. Error code: ' + error.code);
        // error.code can be:
        //   0: unknown error
        //   1: permission denied
        //   2: position unavailable (error response from location provider)
        //   3: timed out
      ;

      navigator.geolocation.getCurrentPosition(geoSuccess, geoError, geoOptions);
    ;

    
    else 
      console.log('Geolocation is not supported for this Browser/OS version yet.');
    
    </script>
    <?php
    
    ?>

【讨论】:

【参考方案5】:

你可以通过这个获取IP值:

$theClientIp = $_SERVER['REMOTE_HOST'];

然后你可以像这样进行会话:

session_start();
$_SESSION['ip']=$theClientIp;

在任何地方都可以通过回显这个来获取 ip 值

session_start(); $_SESSION[ip'];

【讨论】:

PHP地理定位API [关闭]

】PHP地理定位API[关闭]【英文标题】:PHPGeolocationAPI[closed]【发布时间】:2010-12-1512:27:27【问题描述】:我需要根据用户位置在我的页面中显示特定内容。我的申请类似于http://www.yelp.com/。我想在主页上显示用户所在城市的业务。... 查看详情

Microsoft Bot 框架地理定位

...义它们。【问题讨论】:【参考方案1】:很遗憾,没有自动方式获取用户的位置,因为这会侵犯用户隐私。但是,您始终可以请求用户的位置。取决于他们使用的聊天频道, 查看详情

地理定位后 google maps addlistener 点击 stop working

...可以点击谷歌地图的地址,输入国家,庄园,县,地址会自动填写,但如果用户想用文本填写输入,自动地理定位地图。这两个功能都可以正常工作,但是在用户填写输入文 查看详情

如何将启动时窗口的位置定位到用户屏幕的右侧?

...边栏的WPF应用程序。当用户启动应用程序时,我希望窗口自动将其自身定位到用户屏幕的一侧。我尝试了一些方法和谷歌搜索,但没有找到任何帮 查看详情

是否有可以查询当地城市名称的公共地理定位系统?

...统中的地址输入,其中城市文本框自动建议最初由用户的地理位置填充。过去,在不知道省/州/国家/地区的情况下自动提示城市名称的成本似乎非常高,但要求用户向后输入地址是没有 查看详情

MKMapView:用户位置图钉颜色自动变为灰色

】MKMapView:用户位置图钉颜色自动变为灰色【英文标题】:MKMapView:userlocationpincolorchangetograyautomatically【发布时间】:2015-06-1612:12:16【问题描述】:这很奇怪,我有一个ViewController,它添加了一个MKMapView作为子视图。应用程序中有... 查看详情

html5geolocation(地理定位)用于定位用户的位置。

定位用户的位置HTML5GeolocationAPI用于获得用户的地理位置。鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。浏览器支持InternetExplorer9、Firefox、Chrome、Safari以及Opera支持地理定位。注释:对于拥有GPS... 查看详情

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

...504:29:55【问题描述】:我想通过php脚本获取计算机用户的地理位置(纬度和经度)。我用的是这个<?php//Getlatandlongbyaddress$address=$dlocation;//Goo 查看详情

使用 php mysql 的地理定位内容

】使用phpmysql的地理定位内容【英文标题】:Geotargetingcontentusingphpmysql【发布时间】:2012-06-3011:09:56【问题描述】:我有一个网站,我只想在印度展示一张图片,而对于世界其他地方,我将展示一些其他图片。这意味着,在印度... 查看详情

腾讯地图api使用——地图选点自动定位到当前位置(代码片段)

...务APIKey,该key在调用时用于唯一标识开发者身份。1.自动获取当前位置引入以下js文件https://mapapi.qq.com/web/mapComponents/geoLocation/v/geolocation.min.js//获取当前定位Key和referer修改为自己项目的值getPosition()this.showPosition函数表示定位成... 查看详情

服务机器人定位方式---自动定位手动定位和初始位置定位

文章目录1.A厂家的实现1.A厂家的实现 查看详情

如何在asp.net中自动启用浏览器位置设置

】如何在asp.net中自动启用浏览器位置设置【英文标题】:Howtoautomaticallyenablebrowserlocationsettinginasp.net【发布时间】:2013-08-0519:02:33【问题描述】:我想自动启用浏览器地理定位,因为我在访问地理定位以允许或拒绝时收到一个确... 查看详情

17html5地理定位

HTML5GeolocationAPI用于获得用户的地理位置鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的注意:大部分浏览器都支持 Geolocation(地理定位),对于拥有GPS的设备,比如iPhone,地理定位更加精确 ... 查看详情

根据用户位置检索地理定位图像[关闭]

】根据用户位置检索地理定位图像[关闭]【英文标题】:Retreivegeolocatedimagesdependingonuserslocation[closed]【发布时间】:2016-10-1007:08:30【问题描述】:根据用户的位置,我可以使用哪些代码来检索用户使用GeoFire上传的地理定位图像?... 查看详情

elemetn表单控件---未通过校验字段提交时自动定位到该字段位置(代码片段)

前言最近在使用element框架中表单组件时发现一个问题,表单字段项比较多时,当用户点击提交,表单最上面的必填字段如果没有填写,那校验提示信息只会在该字段项下方显示,但是对于已经滚动到底部点击... 查看详情

使用地理位置定位用户?

】使用地理位置定位用户?【英文标题】:Locatingauserusinggeolocation?【发布时间】:2011-07-2813:03:21【问题描述】:我想知道获取访问我页面的用户的纬度和经度的最佳方法是什么。我希望它也能在IE中工作,所以html5是不可能的:)谢... 查看详情

如何使用此地理定位脚本缓存用户的位置?

】如何使用此地理定位脚本缓存用户的位置?【英文标题】:HowwouldIcachethelocationoftheuserwiththisgeolocationscript?【发布时间】:2011-09-0818:20:02【问题描述】:我将如何缓存用户的位置,以便在用户点击后退按钮或多次访问该网站时不... 查看详情

将 HTML5 地理定位与 PHP 和 MySql 结合使用

】将HTML5地理定位与PHP和MySql结合使用【英文标题】:UsingHTML5GeolocationwithPHPandMySql【发布时间】:2012-04-0415:35:23【问题描述】:我正在为一个需要使用PHP和MySql的大学项目构建一个Web应用程序。我计划使用HTML5Geolocation来请求访问... 查看详情