PHP获取操作系统、IP、地理位置、浏览器、ISP等信息_PHP类代码
PHP语言、浏览器、操作系统、IP、地理位置、ISP,本PHP类里面有以下几种方法,同时也是用法说明:
<?php
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;
}
}
?>
$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 隐藏接口。
PHP获取操作系统、IP、地理位置、浏览器、ISP等信息_PHP类代码的更多相关文章
- 如何获取用户的地理位置-浏览器地理位置(Geolocation)API 简介
如何获取用户的地理位置-浏览器地理位置(Geolocation)API 简介 一.总结 一句话总结:Geolocation API(地理位置应用程序接口)提供了一个可以准确知道浏览器用户当前位置的方法 ...
- php利用淘宝IP库获取用户ip地理位置
我们查ip的时候都是利用ip138查询的,不过那个有时候是不准确的,还不如自己引用淘宝的ip库来查询,这样准确度还高一些.不多说了,介绍一下淘宝IP地址库的使用. 淘宝IP地址库 淘宝公布了他们的IP ...
- Js获取操作系统版本 && 获得浏览器版本
//利用原生Js获取操作系统版本function getOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.plat ...
- C# 获取操作系统相关的信息
本文通过一个Demo,讲解如何通过C#获取操作系统相关的信息,如内存大小,CPU大小,机器名,环境变量等操作系统软件.硬件相关信息,仅供学习分享使用,如有不足之处,还请指正. 涉及知识点: Envir ...
- python开发_platform_获取操作系统详细信息工具
''' python中,platform模块给我们提供了很多方法去获取操作系统的信息 如: import platform platform.platform() #获取操作系统名称及版本号,'Win ...
- PHP语言、浏览器、操作系统、IP、地理位置、ISP
)]; } else { $Isp = 'None'; } return $Isp; }}
- .NET 获取客户端的操作系统版本、浏览器版本和IP地址
我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取. .NET 获取客户端的操作系 ...
- js获取ip地址,操作系统,浏览器版本等信息,可兼容
这次呢,说一下使用js获取用户电脑的ip信息,刚开始只是想获取用户ip,后来就顺带着获取了操作系统和浏览器信息. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器 ...
- php获取客户端IP地址、所在地、操作系统、浏览器信息
本实例主要实现获取客户端的IP,再根据获取的IP获取所在地,还可以获取用户当前电脑使用的操作系统以及用户是通过什么浏览器进行访问的. 您可以在这里查看具体演示和下载demo http://www.j ...
随机推荐
- 十大免费移动程序测试框架(Android/iOS)
十大免费移动程序测试框架(Android/iOS) 概述:本文将介绍10款免费移动程序测试框架,帮助开发人员简化测试流程,一起来看看吧. Bug是移动开发者最头痛的一大问题.不同于Web应用程序开发, ...
- GCC依赖库顺序问题
今天在把linux下做的ipmsg移植到windows过程中,因为包含了一个开源库SimpleSocket,而这个库又引用了winsock2,没太注意就写下了下面的makefile: g++ -o t ...
- (转载)PHP array_slice() 函数
(转载)http://www.w3school.com.cn/php/func_array_slice.asp PHP Array 函数 定义和用法 array_slice() 函数在数组中根据条件取 ...
- 均价 和 最新价格 是啥意思 什么是MACD DIFF DEA 指标?
均价=当前时刻成交的总价格/成交的总量 最新价格=当前时刻的价格 一.平滑异同平均线(Moving Average Convergence Divergence)原理:MACD(Moving Aver ...
- shell如何将文件上传至ftp
#!/bin/bash ip=$ port=$ user=$ /usr/bin/lftp -p $port $ip <<EOF user $user $pwd set ftp:ssl-au ...
- SRM 584 DIV1
A 简单的差分约束模型 , 因为d是定值 , 所以也可以按最短路理解 , trick是不能把圈算进去. #define maxn 55 class Egalitarianism { public: i ...
- maven,本地仓库和私服nexus的配置,以及eclipse载入maven
首先可以进入http://maven.apache.org/官网查看如何配置 一.配置环境 1 确定自己的java运行环境配置正确-->在cmd运行 java -version或echo %JA ...
- Git详解之二 Git基础
Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置: ...
- View inflate方法和LayoutInflater inflate方法的区别详解
原创文章,转载请注明出处:http://www.cnblogs.com/baipengzhan/p/6257510.html 我们在Android开发中,对于将布局填充成View对象,最常用的两种办法 ...
- android 回调机制实例!
详细实现为在类中定义接口.在接口的实现方法中传入參数(也能够不传). 在调用类中传入新建的接口.并实现未实现的方法. public class CallBackClass { //传入对应的接口作为參 ...