PHP获取浏览器信息类和客户端地理位置的2个方法
发布:smiling 来源: PHP粉丝网 添加日期:2020-11-20 10:26:16 浏览: 评论:0
这篇文章主要介绍了PHP获取浏览器信息类和客户端地理位置的2个方法,需要的朋友可以参考下。
一、获取浏览器信息,获取访客操作系统:windows、mac、linux、unix、bsd、other,以及访客ip地址等信息的PHP,代码如下:
- <?php
- /**
- * 获取访客信息的类:语言、浏览器、操作系统、ip、地理位置、isp。
- * 使用:
- * $obj = new guest_info;
- * $obj->getlang(); //获取访客语言:简体中文、繁體中文、english。
- * $obj->getbrowser(); //获取访客浏览器:msie、firefox、chrome、safari、opera、other。
- * $obj->getos(); //获取访客操作系统:windows、mac、linux、unix、bsd、other。
- * $obj->getip(); //获取访客ip地址。
- * $obj->getadd(); //获取访客地理位置,使用 baidu 隐藏接口。
- * $obj->getisp(); //获取访客isp,使用 baidu 隐藏接口。
- */
- class guest_info{
- function getlang() {
- $lang = substr($_server['http_accept_language'], 0, 4);
- //使用substr()截取字符串,从 0 位开始,截取4个字符
- if (preg_match('/zh-c/i',$lang)) {
- //preg_match()正则表达式匹配函数
- $lang = '简体中文';
- }
- elseif (preg_match('/zh/i',$lang)) {
- $lang = '繁體中文';
- }
- else {
- $lang = 'english';
- }
- return $lang;
- }
- function getbrowser() {
- $browser = $_server['http_user_agent'];
- if (preg_match('/msie/i',$browser)) {
- $browser = 'msie';
- }
- elseif (preg_match('/firefox/i',$browser)) {
- $browser = 'firefox';
- }
- elseif (preg_match('/chrome/i',$browser)) {
- $browser = 'chrome';
- }
- elseif (preg_match('/safari/i',$browser)) {
- $browser = 'safari';
- }
- elseif (preg_match('/opera/i',$browser)) {
- $browser = 'opera';
- }
- else {
- $browser = 'other';
- }
- return $browser;
- }
- function getos() {
- $os = $_server['http_user_agent'];
- if (preg_match('/win/i',$os)) {
- $os = 'windows';
- }
- elseif (preg_match('/mac/i',$os)) {
- $os = 'mac';
- }
- elseif (preg_match('/linux/i',$os)) {
- $os = 'linux';
- }
- elseif (preg_match('/unix/i',$os)) {
- $os = 'unix';
- }
- elseif (preg_match('/bsd/i',$os)) {
- $os = 'bsd';
- }
- else {
- $os = 'other';
- }
- return $os;
- }
- function getip() {
- if (!emptyempty($_server['http_client_ip'])) {
- //如果变量是非空或非零的值,则 empty()返回 false。
- $ip = explode(',',$_server['http_client_ip']);
- }
- elseif (!emptyempty($_server['http_x_forwarded_for'])) {
- $ip = explode(',',$_server['http_x_forwarded_for']);
- }
- elseif (!emptyempty($_server['remote_addr'])) {
- $ip = explode(',',$_server['remote_addr']);
- }
- else {
- $ip[0] = 'none';
- }
- return $ip[0];
- }
- }
- $obj = new guest_info;
- echo $obj->getlang(); //获取访客语言:简体中文、繁體中文、english。
- echo $obj->getbrowser(); //获取访客浏览器:msie、firefox、chrome、safari、opera、other。
- echo $obj->getos(); //获取访客操作系统:windows、mac、linux、unix、bsd、other。
- echo $obj->getip(); //获取访客ip地址。
- ?>
二、php利用腾讯ip分享计划获取ip地理位置,代码如下:
- <?php
- function getiploc_qq($queryip){
- $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryip;
- $ch = curl_init($url);
- curl_setopt($ch,curlopt_encoding ,'gb2312');
- curl_setopt($ch, curlopt_timeout, 10);
- curl_setopt($ch, curlopt_returntransfer, true) ; // 获取数据返回
- $result = curl_exec($ch);
- $result = mb_convert_encoding($result, "utf-8", "gb2312"); // 编码转换,否则乱码
- curl_close($ch);
- preg_match("@<span>(.*)</span></p>@iu",$result,$iparray);
- $loc = $iparray[1];
- return $loc;
- }
- //使用
- echo getiploc_qq("183.37.209.57"); //即可得到ip地址所在的地址位置。
- ?>
三、php利用新浪ip查询接口获取ip地理位置,代码如下:
- <?php
- function getiploc_sina($queryip){
- $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryip;
- $ch = curl_init($url);
- curl_setopt($ch,curlopt_encoding ,'utf8');
- curl_setopt($ch, curlopt_timeout, 5);
- curl_setopt($ch, curlopt_returntransfer, true) ; // 获取数据返回
- $location = curl_exec($ch);
- $location = json_decode($location);
- curl_close($ch);
- $loc = "";
- if($location===false) return "";
- if (emptyempty($location->desc)) {
- $loc = $location->province.$location->city.$location->district.$location->isp;
- }else{ $loc = $location->desc;
- }
- return $loc;
- }
- echo getiploc_sina("183.37.209.57");
- ?>
Tags: PHP浏览器信息类
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)