博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP获取访客ip、系统、浏览器等信息[转]
阅读量:7124 次
发布时间:2019-06-28

本文共 2619 字,大约阅读时间需要 8 分钟。

1.获取访客操作系统信息

  1.  
    <?php
  2.  
    function GetOs() {
  3.  
    if (!empty($_SERVER['HTTP_USER_AGENT'])) {
  4.  
    $OS = $_SERVER[
    'HTTP_USER_AGENT'];
  5.  
    if (preg_match('/win/i', $OS)) {
  6.  
    $OS =
    'Windows';
  7.  
    }
    elseif (preg_match('/mac/i', $OS)) {
  8.  
    $OS =
    'MAC';
  9.  
    }
    elseif (preg_match('/linux/i', $OS)) {
  10.  
    $OS =
    'Linux';
  11.  
    }
    elseif (preg_match('/unix/i', $OS)) {
  12.  
    $OS =
    'Unix';
  13.  
    }
    elseif (preg_match('/bsd/i', $OS)) {
  14.  
    $OS =
    'BSD';
  15.  
    }
    else {
  16.  
    $OS =
    'Other';
  17.  
    }
  18.  
    return $OS;
  19.  
    }
    else {
  20.  
    return "获取访客操作系统信息失败!";
  21.  
    }
  22.  
    }
    ?>

2.获取浏览器信息

  1.  
    <?php
  2.  
    function GetBrowser() {
  3.  
    if (!empty($_SERVER['HTTP_USER_AGENT'])) {
  4.  
    $br = $_SERVER[
    'HTTP_USER_AGENT'];
  5.  
    if (preg_match('/MSIE/i', $br)) {
  6.  
    $br =
    'MSIE';
  7.  
    }
    elseif (preg_match('/Firefox/i', $br)) {
  8.  
    $br =
    'Firefox';
  9.  
    }
    elseif (preg_match('/Chrome/i', $br)) {
  10.  
    $br =
    'Chrome';
  11.  
    }
    elseif (preg_match('/Safari/i', $br)) {
  12.  
    $br =
    'Safari';
  13.  
    }
    elseif (preg_match('/Opera/i', $br)) {
  14.  
    $br =
    'Opera';
  15.  
    }
    else {
  16.  
    $br =
    'Other';
  17.  
    }
  18.  
    return $br;
  19.  
    }
    else {
  20.  
    return "获取浏览器信息失败!";
  21.  
    }
  22.  
    }
    ?>

 

3.获取浏览器语言

  1.  
    <?php
  2.  
    function GetLang() {
  3.  
    if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
  4.  
    $lang = $_SERVER[
    'HTTP_ACCEPT_LANGUAGE'];
  5.  
    $lang = substr($lang,
    0, 5);
  6.  
    if (preg_match("/zh-cn/i", $lang)) {
  7.  
    $lang =
    "简体中文";
  8.  
    }
    elseif (preg_match("/zh/i", $lang)) {
  9.  
    $lang =
    "繁体中文";
  10.  
    }
    else {
  11.  
    $lang =
    "English";
  12.  
    }
  13.  
    return $lang;
  14.  
    }
    else {
  15.  
    return "获取浏览器语言失败!";
  16.  
    }
  17.  
    }
    ?>

4.获取ip和地址信息

  1.  
    <?php
  2.  
    //获取ip
  3.  
    function getip() {
  4.  
    if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP") , "unknown")) {
  5.  
    $ip = getenv(
    "HTTP_CLIENT_IP");
  6.  
    }
    else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR") , "unknown")) {
  7.  
    $ip = getenv(
    "HTTP_X_FORWARDED_FOR");
  8.  
    }
    else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR") , "unknown")) {
  9.  
    $ip = getenv(
    "REMOTE_ADDR");
  10.  
    }
    else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
  11.  
    $ip = $_SERVER[
    'REMOTE_ADDR'];
  12.  
    }
    else {
  13.  
    $ip =
    "unknown";
  14.  
    }
  15.  
    return $ip;
  16.  
    }
  17.  
    //获取地址
  18.  
    function getLocation($ip = '') {
  19.  
    empty($ip) && $ip = getip();
  20.  
    if ($ip == "127.0.0.1") return "本机地址";
  21.  
    $api =
    "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=$ip"; //请求新浪ip地址库
  22.  
    $json = @file_get_contents($api);
  23.  
    $arr = json_decode($json,
    true);
  24.  
    $country = $arr[
    'country'];
  25.  
    $province = $arr[
    'province'];
  26.  
    $city = $arr[
    'city'];
  27.  
    if ((string)$country == "中国") {
  28.  
    if ((string)($province) != (string)$city) {
  29.  
    $_location = $province . $city;
  30.  
    }
    else {
  31.  
    $_location = $country . $city;
  32.  
    }
  33.  
    }
    else {
  34.  
    $_location = $country;
  35.  
    }
  36.  
    return $_location;
  37.  
    }
    ?>

i> 使用时直接在需要输出的地方调用函数即可 例如:<?php echo getip();?>

原文: https://blog.csdn.net/MaXSSR/article/details/80886258

 

转载于:https://www.cnblogs.com/waw/p/9667086.html

你可能感兴趣的文章
Python学习之==>文件操作
查看>>
java知识整理
查看>>
github pages 添加godaddy的dns解析
查看>>
转 微服务的4个设计原则和19个解决方案
查看>>
黑马程序员java笔记之八-----反射Class
查看>>
adobe flash player 安装失败
查看>>
图论--拓扑排序模板
查看>>
LeetCode10 Indexed tree
查看>>
c# webbrowser.documentstream保存html文件 解决gb2312编码 存下后出现乱码的问题
查看>>
Oracle数据控制语言(DCL)
查看>>
第27天:js-表单获取焦点和数组声明遍历
查看>>
算法-插入排序
查看>>
jndi配置数据源
查看>>
20145234黄斐《Java程序设计》第十周学习总结
查看>>
linux 磁盘io监控
查看>>
Java中instanceof关键字的用法
查看>>
单链表的创建,插入,删除等操作——精简版
查看>>
PHP访问Oracle数据库
查看>>
Jmeter 线程之间传递变量
查看>>
Python内置函数清单
查看>>