通过IP获取位置

昨天写了个获取天气的API,那么我也该写一个调用这个API的Demo了。不过获取天气必须要城市名称,而Demo上不可能在弄一个输入城市的吧……好在,可以通过IP获取所在城市。

<?php
if(isset($_GET['ip']) || $_GET['ip'] != ''){
$ip = $_GET['ip'];
}else{
$ip = $_SERVER["REMOTE_ADDR"];
}
$ipurl = "http://ip.taobao.com/service/getIpInfo.php?ip={$ip}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ipurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$output = curl_exec($ch);
curl_close($ch);
$IPArr = json_decode($output);
//print_r($IPArr);
$city = $IPArr->data->city;//地区
echo $city;

Demo:

https://www.yuncaioo.com/demo/ipplace

原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明转载自:通过IP获取位置

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Rainbond开源「容器云平台」

技术解读Rainbond Service Mesh微服务架构_开源PaaS Rainbond

20420
来自专栏编程

开发一款app从PHP到API接口

一、先简单回答两个问题: 1、PHP 可以开发客户端? 答:不可以,因为PHP是脚本语言,是负责完成 B/S架构 或 C/S架构 的S部分,即:服务端的开发。(...

44290
来自专栏CSDN技术头条

携程开源Redis多数据中心解决方案XPipe

Redis在携程内部得到了广泛的使用,根据客户端数据统计,整个携程全部Redis的读写请求在每秒200W,其中写请求约每秒10W,很多业务甚至会将Redis当成...

47690
来自专栏Android 开发者

Android 开发者 | 应用兼容性注意事项

29740
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven

作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 前言 项目展示地址,点这里...

29460
来自专栏皮振伟的专栏

[kvm][qemu]影响虚拟化热迁移的设备

前言 虚拟化场景下,热迁移、HA都会受到部分设备的影响。设备的实现上,包含“透传”、“直通”、“passthrough”,基本上就限制了虚拟机的迁移能力。 作...

54360
来自专栏jerryteng的专栏

如何利用最低配的腾讯云快速搭建高并发在线服务

这里是作为开发用,我们就选择一个普通的服务器,我也是很不好意思的申请了相关的学生机,那我们就用学生机来搭建一个高并发的在线服务。这个机器配置很低,我还进行了降级...

1.1K100
来自专栏JAVA高级架构

微服务架构下静态数据通用缓存机制

在分布式系统中,特别是最近很火的微服务架构下,有没有或者能不能总结出一个业务静态数据的通用缓存处理机制或方案,这篇文章将结合一些实际的研发经验,尝试理清其中存在...

11820
来自专栏Netkiller

压力测试中存在的问题

压力测试中存在的问题 (What) 什么是压力测试 软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。软件压力测试的基本思路很简单: 不是...

34240

使用Node.js构建API网关

当微服务架构中的服务被外部的客户端访问时,可以共享有关身份验证和传输的一些常见请求。API网关提供了一个共享层去处理服务协议之间的差异,同时满足特定客户端(像P...

46190

扫码关注云+社区

领取腾讯云代金券