php如何根据IP获取当前经纬度以及地域信息

今天心血来潮脑海忽出一个想法,即打算写出来玩耍一下。

其中涉及几个关键功能

1.获取用户当前经纬度、地址、地域信息;

2.计算用户与用户之间的距离、路线。

3.其他,与今天的文章没有关系就不废话啦。

大概翻阅了一下资料,方法有很多,今天主要介绍一下腾讯地图的方法吧

废话不多说直接上码;

PHP求请求方法:

function getLocationInfo($ip,$key){

    //$ip  用户的当前IP地址
    //$key 腾讯地图开发者需要的KEY秘钥,自己去注册一下吧
    //$url 腾讯地图API请求接口地址

    $url = 'https://apis.map.qq.com/ws/location/v1/ip?ip='.$ip.'&key='.$key;
    $info = file_get_contents($url);    //GET请求,记住这里必须要用GET哦
    $info = json_decode($info, true);	//将返回数据转JSON

    return $info;   //返回请求结果
}

返回结果:

array(3) {
  ["ip"]=>
  string(12) "0.0.0.0"			//IP地址
  ["location"]=>
  array(2) {
    ["lat"]=>
    float(00.0000)				//纬度
    ["lng"]=>
    float(000.00000)			//经度
  }
  ["ad_info"]=>
  array(5) {
    ["nation"]=>
    string(6) "中国"				//国家
    ["province"]=>
    string(12) "黑龙江省"		//省
    ["city"]=>
    string(12) "哈尔滨市"		//市
    ["district"]=>
    string(9) "道里区"			//区
    ["adcode"]=>
    int(000000)					//地址码
  }
}

就这样么简单,已经拿到经纬度啦!

至于计算距离或者根据经纬度获取当前详细地址就都不是问题啦~!

php根据IP获取IP所在城市

//根据现有IP地址获取其地理位置(省份,城市等)的方法

function GetIpLookup($ip = ''){
  if(empty($ip)){
    return '请输入IP地址';
  }
  $res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip);
  if(empty($res)){ return false; }
  $jsonMatches = array();
  preg_match('#\{.+?\}#', $res, $jsonMatches);
  if(!isset($jsonMatches[0])){ return false; }
  $json = json_decode($jsonMatches[0], true);
  if(isset($json['ret']) && $json['ret'] == 1){
    $json['ip'] = $ip;
    unset($json['ret']);
  }else{
    return false;
  }
  return $json;
}
$ipInfos = GetIpLookup('123.125.114.144'); //baidu.com IP地址  //ipInfos 是一个数组
var_dump($ipInfos);

总结

到此这篇关于php如何根据IP获取当前经纬度以及地域信息的文章就介绍到这了,更多相关php获取当前经纬度及地域内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • php根据地址获取百度地图经纬度的实例方法

    首先我们来看全部实例代码: /** * @param string $address 地址 * @param string $city 城市名 * @return array */ function getLatLng($address='',$city='') { $result = array(); $ak = '';//您的百度地图ak,可以去百度开发者中心去免费申请 $url ="http://api.map.baidu.com/geocoder/v2/?callback=renderO

  • PHP计算2点经纬度之间的距离代码

    复制代码 代码如下: function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2) {    $theta = $longitude1 - $longitude2;    $miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($la

  • php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法

    本文实例讲述了php获取指定(访客)IP所有信息(地址.邮政编码.国家.经纬度等)的方法.分享给大家供大家参考.具体如下: 调用方法非常简单.这个也需要数据库来支持.数据库中中文和拼音共存才可以. 废话不多说,看代码: <?php function getIpInfo($ip,$timeout=15) { if(!function_exists('curl_init') or !function_exists('simplexml_load_string')) return false; $ch

  • golang与php实现计算两个经纬度之间距离的方法

    本文实例讲述了golang与php实现计算两个经纬度之间距离的方法.分享给大家供大家参考,具体如下: golang版本: 复制代码 代码如下: package main import (     "fmt"     "math" ) func main() {     lat1 := 29.490295     lng1 := 106.486654     lat2 := 29.615467     lng2 := 106.581515     fmt.Printl

  • PHP根据两点间的经纬度计算距离

    这是一个不错的示例,直接贴代码,首先要知道纬度值.经度值 /** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($lat1, $lng1, $lat2, $lng2) { $earthRadius = 6367000; //approximate radius of earth in meters /* Convert these degrees to r

  • PHP计算当前坐标3公里内4个角落的最大最小经纬度实例

    本文实例讲述了PHP计算当前坐标3公里内4个角落的最大最小经纬度的方法.分享给大家供大家参考,具体如下: //$lng .$lat 经纬度 $half = 6371; $distance = 3; //3公里 $dlng = 2 * asin(sin($distance / (2 * $half)) / cos(deg2rad($lat))); $dlng = rad2deg($dlng); $dlat = $distance / $half; $dlat = rad2deg($dlat); $

  • 定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内

    具体代码如下所述: /* 计算两组经纬度坐标之间的距离 * @param $lat1 纬度1 * @param $lng1 经度1 * @param $lat2 纬度2 * @param $lng2 经度2 * @param int $len_type 返回值类型(1-m 2-km) * @param int $decimal 保留小数位数 * @return float */ public function getDistance($lat1, $lng1, $lat2, $lng2, $le

  • php如何根据IP获取当前经纬度以及地域信息

    今天心血来潮脑海忽出一个想法,即打算写出来玩耍一下. 其中涉及几个关键功能 1.获取用户当前经纬度.地址.地域信息: 2.计算用户与用户之间的距离.路线. 3.其他,与今天的文章没有关系就不废话啦. 大概翻阅了一下资料,方法有很多,今天主要介绍一下腾讯地图的方法吧 废话不多说直接上码: PHP求请求方法: function getLocationInfo($ip,$key){ //$ip 用户的当前IP地址 //$key 腾讯地图开发者需要的KEY秘钥,自己去注册一下吧 //$url 腾讯地图A

  • 微信公众号JS-SDK获取当前经纬度以及地址信息的方法

    目录 前言 一.微信 JS-SDK是什么? 二.使用步骤 1.绑定域名 2.引入 JS 文件 3.通过 config 接口注入权限验证配置 4.在这过程中我遇到的问题及解决方法(提示错误invalid signature) 总结 前言 这篇文章带大家掌握 从0到1掌握微信公众平台js-sdk调用 微信公众平台js-sdk调用到底哪几步 安全域名怎么配置 代码怎么写 出了问题怎么查找 例如:随着微信生态的不断发展,基于微信平台的网页开发业务场景也越来越多,很多人都开启了学习微信网页开发,本文就介绍

  • PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法

    根据IP获取访客所在国家/城市/经纬度 安装GeoIP扩展: sudo apt-get install libgeoip-dev pecl install geoip-1.1.0 注意:Beta版要指定版本号.如果是apt安装的PHP,直接安装php5-geoip这个包即可. php.ini中加入: extension=geoip.so geoip.custom_directory="/usr/share/GeoIP" 免费下载GeoLiteCity数据库(解压后18MB): http

  • ASP.NET实现根据IP获取省市地址的方法

    本文实例讲述了ASP.NET实现根据IP获取省市地址的方法,分享给大家供大家参考.具体实现方法如下: 1.在网站的跟路径下面添加QQWry.dat(点击此处本站下载http://www.jb51.net/softs/10529.html)文件,这个文件是IP数据库文件 2.添加以下一个类 IPScanner 复制代码 代码如下: public class IPScanner {         //私有成员#region 私有成员         private string dataPath;

  • Node.js和PHP根据ip获取地理位置的方法

    一.Node.js实现代码 复制代码 代码如下: var http = require('http');var util = require('util'); /** * 根据 ip 获取获取地址信息 */var getIpInfo = function(ip, cb) {    var sina_server = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=';    var url = sina_ser

  • java根据ip地址获取详细地域信息的方法

    互联网有很多接口可以实现通过ip查询到具体的位置,如下: 通过淘宝IP地址库获取IP位置 请求接口(GET):http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 响应信息:(json格式的)国家 .省(自治区或直辖市).市(县).运营商 返回数据格式: {"code":0,"data":{"ip":"210.75.225.254","country"

  • java根据本地IP获取mac地址的方法

    本文实例为大家分享了java根据本地IP获取mac地址的具体代码,供大家参考,具体内容如下 import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException; public class MacAddress { /** * @param args * @throws UnknownHostExcep

  • C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法

    本文实例讲述了C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法,分享给大家供大家参考.具体实现方法如下: 一.百度天气 接口地址:http://api.map.baidu.com/telematics/v3/weather?location=上海&output=json&ak=hXWAgbsCC9UTkBO5V5Qg1WZ9,其中ak是密钥,自行去申请即可,便于大家测试,楼主就公布并了自己的Key,这样可以直接获取到数据. 获取到的数据是这样的: 复制代码 代码如

  • python爬虫获取小区经纬度以及结构化地址

    本文实例为大家分享了python爬虫获取小区经纬度.地址的具体代码,供大家参考,具体内容如下 通过小区名称利用百度api可以获取小区的地址以及经纬度,但是由于api返回的值中的地址形式不同,所以可以首先利用小区名称进行一轮爬虫,获取小区的经纬度,然后再利用经纬度Reverse到小区的结构化的地址.另外小区名称如果是'...号',可以在爬虫开始之前在'号'之后加一个'院',得到的精确度更高.这次写到程序更加便于二次利用,只需要给程序传递一个dataframe就可以坐等结果了.现在程序已经写好了,就

  • Android通过原生方式获取经纬度与城市信息的方法

    一.概述 在项目中需要获取用户所在位置的经纬度和城市上送给风控系统.一般来说,定位有两种方式: 用第三方SDK定位,如百度地图.高德地图.谷歌地图: 用Android原生SDK中的api定位: 本文讲述定位的第二种方式--用Android原生的SDK中的api定位,如果项目定位要求较高还是建议使用第三方地图库. 二.Android原生SDK中的api定位 Android原生方式获取经纬度两种定位方式:GPS定位和Wifi定位 GPS定位相比Wifi定位更精准且可在无网络情况下使用,但在室内基本暴

随机推荐