PHP语言、浏览器、操作系统、IP、地理位置、ISP
<?php
$obj = new class_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 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];
} private function GetAddIsp()
{
$IP = $this->GetIP();
$AddIsp = mb_convert_encoding(file_get_contents('http://open.baidu.com/ipsearch/stn=ipjson&wd=' . $IP), 'UTF-8', 'GBK');
//mb_convert_encoding() 转换字符编码。
if (preg_match('/noresult/i', $AddIsp)) {
$AddIsp = 'None';
} else {
$Sta = stripos($AddIsp, $IP) + strlen($IP) + strlen('来自');
$Len = stripos($AddIsp, '"}') - $Sta;
$AddIsp = substr($AddIsp, $Sta, $Len);
}
$AddIsp = explode(' ', $AddIsp);
return $AddIsp;
} function GetAdd()
{
$Add = $this->GetAddIsp();
return $Add[0];
} function GetIsp()
{
$Isp = $this->GetAddIsp();
if ($Isp[0] != 'None' && isset($Isp[1])) {
$Isp = $Isp[1];
} else {
$Isp = 'None';
}
return $Isp;
}
}
PHP语言、浏览器、操作系统、IP、地理位置、ISP的更多相关文章
- PHP实现网站访客来访显示访客IP&浏览器&操作系统
PHP实现网站访客来访显示访客IP&浏览器&操作系统 代码 function getOs() { if (!empty($_SERVER['HTTP_USER_AGENT'])) { ...
- php利用淘宝IP库获取用户ip地理位置
我们查ip的时候都是利用ip138查询的,不过那个有时候是不准确的,还不如自己引用淘宝的ip库来查询,这样准确度还高一些.不多说了,介绍一下淘宝IP地址库的使用. 淘宝IP地址库 淘宝公布了他们的IP ...
- 浏览器获取ip地址
/** * 获取浏览器的ip地址 * @param request * @return */ public static String getIP(HttpServletRequest request ...
- PHP获取用户真实 IP , 淘宝IP接口获得ip地理位置(转)
<?php /** * 获取用户真实 IP */ function getIP() { static $realip; if (isset($_SERVER)){ if (isset($_SER ...
- Apache安装之后,在浏览器输入ip无法访问
博主本来在linux下面配置安装了apache,然后用浏览器输入ip却无法访问 就一直在想是不是dns无法解析的问题,最后才发现原来是防火墙的原因, 在linux下面 service iptables ...
- edge浏览器识别ip地址为手机号的解决办法
edge浏览器识别ip地址为手机号的解决办法 今天突然发现类似101.231.70.242的ip地址会在edge浏览器里面识别为可点击的链接,后来看了一下,原因就是被识别为手机号了,因为我发现点击的时 ...
- html利用j获取局域网内的本机IP(根据客户端浏览器的ip获取)
根据客户端浏览器的ip获取 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type ...
- 客户端程序获取自己的ip、isp、地理位置等信息
@ 比如说你需要收集用户信息,又或者要通过这些信息让用户登陆合适的服务器(北京联通用户登陆北京联通服务器). @ 淘宝和新浪都提供了类似的API,你只需要发送一个http请求,它就返回一个json格式 ...
- .NET Core 开源工具 IPTools - 快速查询 IP 地理位置、经纬度信息
快速查询IP信息,支持国内和国外IP信息查询,支持查询经纬度,地理位置最高支持到城市. 1. IPTools.China 快速查询中国IP地址信息,包含国家.省份.城市.和网络运营商.非中国IP只支持 ...
- 网页语言有html,php.jsp,无论什么语言浏览器总是能正常显示,这个解析工作是浏览器完成的吗?
不是,浏览器最基本的语言是html也就是说浏览器只看得懂html.css.js等其他的服务器端动态脚本,比如你说的php.jsp等,解析工作是在服务器完成的!打个比方,你在电脑显示屏上看到的一切东西, ...
随机推荐
- Android 网络通信框架Volley简介(Google IO 2013)
1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient( ...
- 在Code First中使用Migrations对实体类和数据库做出变更
在Code First中使用Migrations对实体类和数据库做出变更,Mirgration包含一系列命令. 工具--库程序包管理器--程序包管理器控制台 运行命令:Enable-Migration ...
- PowerDesigner 如何生成数据库更新脚本
最近在学习使用PowerDesigner 这个数据库设计工具,发现真的很强大,可以做很多事情,其中就涉及到如果数据库要进行更新了怎么办,主要是增加表,最麻烦的是修改字段名称,增加字段等操作,遇到主要的 ...
- Eclipse无法识别Android真机的解决方法
使用IORegistryExplorer(在Developer Tool)可以查看连接上的USB设备的信息.选择IOUSB,可以看到名为连线的安卓设备,比如小米idVendor是0x2717. ech ...
- Java新手入门必须掌握的30个基本概念
今天给大家推荐的文章是有关Java基本概念的,掌握好这些基本概念对学习J2SE.J2EE.J2ME都很重要,也能更好地理解Java的精髓,初学者要注意啦! ▶Java概述: 目前Java主要应用于中间 ...
- POJ 3616 Milking Time 简单DP
题意:奶牛Bessie在0~N时间段产奶.农夫约翰有M个时间段可以挤奶,时间段f,t内Bessie能挤到的牛奶量e.奶牛产奶后需要休息R小时才能继续下一次产奶,求Bessie最大的挤奶量. 详见代码 ...
- JavaScript浏览器本地数据存储
浏览器本地存储主要使用的是sessionStorage和localStorage.两者都支持,sessionStorage保存的是浏览器和服务器的一次对话信息,只在一次回话中有效.当在新标签页或新窗口 ...
- show drop down menu within/from action bar
show drop down menu within/from action bar */--> pre { background-color: #2f4f4f;line-height: 1.6 ...
- linux ant 解决 错误: 找不到或无法加载主类 org.apache.tools.ant.launch.Launcher
在使用ant进行java程序编译的时候出错.错误提示: Error: Could not find or load main class org.apache.tools.ant.launch.Lau ...
- PAT 1070. Mooncake (25)
Mooncake is a Chinese bakery product traditionally eaten during the Mid-Autumn Festival. Many types ...