【php】利用新浪api接口与php获取远程数据的方法,获取IP地址,并获取相应的IP归属地
来源:互联网 发布:端游 页游区别 知乎 编辑:程序博客网 时间:2024/05/29 01:54
本文与《【Servlet】Javaweb中,利用新浪api接口,获取IP地址,并获取相应的IP归属地》(点击打开链接)为姊妹篇,只是后端编程语言换成了php。
做出同样的效果,打开页面,得到客户端的ip,并获取利用新浪api接口获取此ip的归属地。
可以看到,在IE6也是相当正常的。
目录结构如下,非常简单,同样就两个文件,其实如果你愿意,写成一个php文件也可以,但是显示层和逻辑业务层还是不混在一起为好吧?
唯一值得注意的是,这两个文件打死也不能一个叫ipGet.php,ipGet.html,虽然后缀名是不同的,但前缀一定不能相同,
否则IE6不知为何无法应答这个Json
ipGetView.html与《【Servlet】Javaweb中,利用新浪api接口,获取IP地址,并获取相应的IP归属地》(点击打开链接)中的显示层页面是完全相同,新浪api接口也是完全相同的,这里不再赘述。
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Javaweb-IP查询</title></head><body><p>IP:<span id="ip"></span></p><p>IP归属地:<span id="area"></span></p></body></html><script>//创建Ajax对象,不同浏览器有不同的创建方法,其实本函数就是一个简单的new语句而已。 function createXMLHttpRequest() {var XMLHttpRequest1;if (window.XMLHttpRequest) {XMLHttpRequest1 = new XMLHttpRequest();} else if (window.ActiveXObject) {try {XMLHttpRequest1 = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {XMLHttpRequest1 = new ActiveXObject("Microsoft.XMLHTTP");}}return XMLHttpRequest1;}function ajax() {var XMLHttpRequest1 = createXMLHttpRequest();//指明相应页面 var url = "ipGetDo.php";XMLHttpRequest1.open("POST", url, true);//这里没法解释,你所有JavaScript的请求头都这样写就对了,不会乱码 XMLHttpRequest1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");XMLHttpRequest1.send(null);//对于返回结果怎么处理的问题XMLHttpRequest1.onreadystatechange = function() {//这个4代表已经发送完毕之后 if (XMLHttpRequest1.readyState == 4) {//200代表正确收到了返回结果 if (XMLHttpRequest1.status == 200) {//json返回结果var data=eval("("+XMLHttpRequest1.responseText+")");document.getElementById("ip").innerHTML=data.ip;document.getElementById("area").innerHTML=decodeURIComponent(data.area1)+decodeURIComponent(data.area2);} else {//如果不能正常接受结果,你肯定是断网,或者我的服务器关掉了。 alert("网络连接中断!");}}};}ajax();</script>之后,ipGetDo.php中,如同《【php】登录系统与输出浏览者信息》(点击打开链接)一样,利用${_SERVER['REMOTE_ADDR']}先获取用户的ip,然后通过curl向远程获取数据。php用curl向远程获取数据的格式如下:
<?php $url = "需要获取数据的url"; $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10); $DistanceContent = curl_exec($ch); echo $DistanceContent; //$DistanceContent为获取到的数据?>
因此ipGetDo.php的代码也就如下,获取到数据,直接打印出来,让ipGetView.html用Ajax获取即可。
<?php $url = "http://ipapi.sinaapp.com/api.php?f=json&ip=${_SERVER['REMOTE_ADDR']}"; $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10); $DistanceContent = curl_exec($ch); echo $DistanceContent; ?>
0 0
- 【php】利用新浪api接口与php获取远程数据的方法,获取IP地址,并获取相应的IP归属地
- 【Servlet】Javaweb中,利用新浪api接口,获取IP地址,并获取相应的IP归属地
- 利用新浪api获取ip归属地
- php实现获取IP地址归属地
- PHP IP地址归属地查询的接口
- php获取客户端ip地址的方法
- PHP获取ip与ip所在城市 (新浪接口)
- 获取ip归属地
- 新浪接口之PHP根据IP地址获取所在城市
- 通过IP地址获取归属地的最简单的方法
- php获取ip的方法
- php获取ip的方法
- C# ASP.NET通过IP地址获取归属地的方法
- php将汉字转化为拼音和获取ip归属地接口
- php获取ip 地址
- PHP获取IP地址
- PHP 获取IP地址
- php获取ip地址
- Map.toString()后字符串转换回Map
- java web项目中读取配置文件
- Java构造方法总结
- 2016年华为 软开实习生招聘面经(机试面试)
- 技术演绎之 [ java ] 数据格式化输出
- 【php】利用新浪api接口与php获取远程数据的方法,获取IP地址,并获取相应的IP归属地
- http://blog.csdn.net/jiahui524
- 制作根文件系统
- 不需要说话的情况
- java future模式举例
- git flow的使用
- swift文件上传及表单提交
- php数组中删除元素,再重新索引
- 65個技巧性回答 绝对值得收藏