ip获取所在城市名称等信息接口,及函数
函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
function https_request( $url , $data = null){ $curl = curl_init(); curl_setopt( $curl ,CURLOPT_URL, $url ); curl_setopt( $curl ,CURLOPT_SSL_VERIFYPEER,false); curl_setopt( $curl ,CURLOPT_SSL_VERIFYHOST,false); if (! empty ( $data )){ //如果有数据传入数据 curl_setopt( $curl ,CURLOPT_POST,1); //CURLOPT_POST 模拟post请求 curl_setopt( $curl ,CURLOPT_POSTFIELDS, $data ); //传入数据 } curl_setopt( $curl ,CURLOPT_RETURNTRANSFER,1); $output = curl_exec( $curl ); curl_close( $curl ); return $output ; } // 获取ip function GetIp(){ $realip = '' ; $unknown = 'unknown' ; if (isset( $_SERVER )){ if (isset( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ]) && ! empty ( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ]) && strcasecmp ( $_SERVER [ 'HTTP_X_FORWARDED_FOR' ], $unknown )){ $arr = explode ( ',' , $_SERVER [ 'HTTP_X_FORWARDED_FOR' ]); foreach ( $arr as $ip ){ $ip = trim( $ip ); if ( $ip != 'unknown' ){ $realip = $ip ; break ; } } } else if (isset( $_SERVER [ 'HTTP_CLIENT_IP' ]) && ! empty ( $_SERVER [ 'HTTP_CLIENT_IP' ]) && strcasecmp ( $_SERVER [ 'HTTP_CLIENT_IP' ], $unknown )){ $realip = $_SERVER [ 'HTTP_CLIENT_IP' ]; } else if (isset( $_SERVER [ 'REMOTE_ADDR' ]) && ! empty ( $_SERVER [ 'REMOTE_ADDR' ]) && strcasecmp ( $_SERVER [ 'REMOTE_ADDR' ], $unknown )){ $realip = $_SERVER [ 'REMOTE_ADDR' ]; } else { $realip = $unknown ; } } else { if ( getenv ( 'HTTP_X_FORWARDED_FOR' ) && strcasecmp ( getenv ( 'HTTP_X_FORWARDED_FOR' ), $unknown )){ $realip = getenv ( "HTTP_X_FORWARDED_FOR" ); } else if ( getenv ( 'HTTP_CLIENT_IP' ) && strcasecmp ( getenv ( 'HTTP_CLIENT_IP' ), $unknown )){ $realip = getenv ( "HTTP_CLIENT_IP" ); } else if ( getenv ( 'REMOTE_ADDR' ) && strcasecmp ( getenv ( 'REMOTE_ADDR' ), $unknown )){ $realip = getenv ( "REMOTE_ADDR" ); } else { $realip = $unknown ; } } $realip = preg_match( "/[\d\.]{7,15}/" , $realip , $matches ) ? $matches [0] : $unknown ; return $realip ; } |
淘宝接口:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function get_area( $ip = '' ){ if ( $ip == '' ){ $ip = GetIp(); } $url = "http://ip.taobao.com/service/getIpInfo.php?ip={$ip}" ; $ret = https_request( $url ); $arr = json_decode( $ret ,true); return $arr ; } echo "<pre>" ; print_r(get_area( '223.67.235.28' )); echo "</pre>" ; |
新浪接口:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
//根据ip获取所在城市名称 function GetIpLookup( $ip = '' ){ if ( empty ( $ip )){ $ip = GetIp(); } $res = @ file_get_contents ( 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip );//新浪的开放API 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 ; } echo '<pre>' ; // 输出城市等信息 $ipInfos = GetIpLookup( '123.125.114.144' ); //baidu.com IP地址 var_dump( $ipInfos ); // 输出本地地址 echo GetIp(); |
ip获取所在城市名称等信息接口,及函数的更多相关文章
- C# 解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市
百度天气 接口地址:http://api.map.baidu.com/telematics/v3/weather?location=上海&output=json&ak=hXWAgbsC ...
- 通过IP获取所在城市
<script type="text/javascript"> var map = new BMap.Map("allmap"); var poin ...
- php根据IP获取所在省份-淘宝api接口
这里用的file_put_contents,你也可以用别的,直接怼代码: //拼接传递的参数$ip = '175.12.53.12' $opts = array( 'http'=>array( ...
- 根据IP获取所在的国家城市
根据IP获取所在的国家城市 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域测试方法:htt ...
- uniapp|微信小程序获取当前城市名称--逆地址解析
六年代码两茫茫,不思量,自难忘 6年资深前端主管一枚,只分享技术干货,项目实战经验 关注博主不迷路~ 问题 uniapp开发的小程序需要获取当前城市名称 解决步骤 看文档 当然是看uniapp文档,我 ...
- 通过IP来判断所在城市
1 今天的讲解什么? 如何根据ip查询出所在城市?我把博客园中收集的教程整理了一下,主要结合调用相关API,或者通过纯真数据库来解决这个问题. 2 相关介绍 2.1 这个是什么? 通过IP查询所在城 ...
- 通过ip得到所在城市,以及城市所在经纬度坐标(监控系统中用的该代码,小航哥)
监控系统中就是利用的该段代码,实现通过ip得到所在城市,以及城市所在经纬度坐标,最后得以利用echarts实现模拟迁移的效果 api官方介绍: http://lbsyun.baidu.com/inde ...
- PHP通过访问第三方接口,根据IP地址获取所在城市
<?php header('Content-Type:text/html;Charset=utf-8'); /** * 获取IP地址 * * @return string */ function ...
- PHP:根据IP地址获取所在城市
文件目录: ipLocation -----qqwry ----------QQWry.Dat -----ipCity.class.php ipCity.class.php文件代码: <?php ...
随机推荐
- 洛谷P2424/codevs 2606 约数和
http://codevs.cn/problem/2606/ https://luogu.lohu.info/problem/show?pid=2424 题目背景 Smart最近沉迷于对约数的研究中. ...
- Jenkins maven 构建乱码,修改file.encoding系统变量编码为UTF-8
一切都是windows的控制台默认编码GBK问题 情景: 使用jenkins构建,console 输出的中文乱码.代码编码格式是utf-8,因为Jenkins会默认读取当前系统的编码格式,导致构建日志 ...
- Linux文件系统_每一个的意义
2017年1月10日, 星期二 Linux文件系统_每一个的意义 rootfs: 根文件系统 FHS:Linux /boot: 系统启动相关的文件,如内核.initrd,以及grub(bootload ...
- Java并发编程原理与实战十一:锁重入&自旋锁&死锁
一.锁重入 package com.roocon.thread.t6; public class Demo { /* 当第一个线程A拿到当前实例锁后,进入a方法,那么,线程A还能拿到被当前实例所加锁的 ...
- css文字超出显示省略号
单号: white-space:nowrap; overflow:hidden; text-overflow:ellipsis; 多行: word-break: break-all; text-ove ...
- Java 图片转字节流 实现 图片->字节流(字符串)->图片
//该方法实现图片转String 参数为图片的路径 可以是file.toString()得到public String testUpload(String path) { try { String s ...
- 【BZOJ】2434: [Noi2011]阿狸的打字机 AC自动机+树状数组+DFS序
[题意]阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母. 经阿狸研究发现,这个打字机是这样工作的: l 输入小写 ...
- 微服务深入浅出(6)-- 熔断器Hystrix
概念 在分布式系统中,一种不可避免的情况就是某些服务会出现故障,导致依赖他们的其他服务出现远程调度的线程问题(雪崩效应).而Hystrix提供的熔断器,通过隔离服务的访问点,能阻止这种分布式系统中出现 ...
- linux tar 解压出错
今天用tar -xzvf php-7.2.3.tar.gz 解压php的tar包时报错 [root@VM_72_37_centos ~]# tar -xzvf php-.tar.gz gzip: st ...
- VUE项目用hbuilder 打包为手机APP
一.测试项目是否可以正确运行 指令:npm run dev 首先我们先建立一个vue的项目,本人用的是vue-cli随便建立的,然后运行项目 不必非得是像我这样的,这一步的目的只是测试一下咱们的 ...