PHP获取客户端信息

jacklove
jacklove 原创
2023-03-31 16:52:01 7482浏览

测试地址:

http://www.huaxialijian.com/get.php

http://www.huaxialijian.com/ipresult.php

http://www.huaxialijian.com/browse.php

备注:本地搭建需要弄个Mysql的数据,还有两个文件夹

两个文件夹放在代码同级目录下

文件及文件夹名称:./image/chuyin.png (初音未来)

:./css/tpzdsf.css (图片自动缩放)

文件tpzdsf.css代码:

body { text-align:left;background:#f8f8f8;}
.scale img{
background-size:contain|cover;
width:100%;
height: auto;
}

获取内容

1、IP地址

2、物理地址

3、Agent相关信息

开发工具:centos 6.5,VIM,mysql,浏览器,手机

代码:get.php 获取相关信息,插入数据库

<html>
<title>
|初音未来の|
</title>
<?php
include_once ("db_mysql.php");
include_once ("browse.php");
header("content-type:text/html;charset=utf-8");
    $ipa = getip();
    $ipaddr = realmac($ipa);
//    echo $ipa."->".$ipaddr."\n";
function getip(){
   $onlineip='';
    if(getenv('HTTP_CLIENT_IP')&&strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')){
        $onlineip=getenv('HTTP_CLIENT_IP');
    } elseif(getenv('HTTP_X_FORWARDED_FOR')&&strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknown')){
        $onlineip=getenv('HTTP_X_FORWARDED_FOR');
    } elseif(getenv('REMOTE_ADDR')&&strcasecmp(getenv('REMOTE_ADDR'),'unknown')){
        $onlineip=getenv('REMOTE_ADDR');
    } elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],'unknown')){
        $onlineip=$_SERVER['REMOTE_ADDR'];
    }
    return $onlineip;
 }
 function realmac($ipaddr)
    {
    $ip = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ipaddr);
    $ip = json_decode($ip,true);
    $data = $ip['data'];
    return $data['country'].$data['region'].$data['city'].$data['isp'].$data['country_id'];
   }
$bro = determinebrowser($Agent);
$sys = determineplatform($Agent);
$getnet = getnettype($Agent);
//var_dump($bro);
//var_dump($sys);
//exit;
$sql = "INSERT INTO ips (uid,ip,addr,browse,sysversion,nettype) VALUES ('1','$ipa','$ipaddr','$bro','$sys','$getnet');";
mysql_select_db("my_db");
mysql_query('SET NAMES UTF8');
if(!mysql_query($sql,$con))
    {
    echo mysql_error();
    }else
    {
//隐藏提示吧
//  echo "系统提示:".$ipa."->".$ipaddr." 已经记录!";
    }
?>
<head>
<link rel="stylesheet" type="text/css" href="./css/tpzdsf.css">
<body>
<p class="scale">
<img src="./image/chuyin.png">
</p>
</body>
</head>
</html>

文件2,ipresult.php 查看获取到的信息 select数据库 table展示

<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询IP结果</title>
<head>
<style type="text/css">
</style>
</head>
<table>
    <tr>
        <td><b>[id]</b></td>
        <td><b>[ip地址]  </td>
        <td><b>[实际地址]</b></td>
        <td><b>[浏览器]</b></td>
        <td><b>[操作系统]</b></td>
        <td><b>[网络类型]</b></td>
    </tr>
  
<?php
header("content-type:text/html;charset=utf-8");
    include_once ("db_mysql.php");
    mysql_select_db("my_db",$con);
    mysql_query('SET NAMES UTF8');
    $sql = "select * from ips order by id desc;";
    $query = mysql_query($sql,$con);
    while($row = mysql_fetch_array($query)){
?>
    <tr>
        <td><?php echo $row['id']; ?></td>
        <td><?php echo $row['ip']; ?></td>
        <td><?php echo $row['addr']; ?></td>
        <td><?php echo $row['browse']; ?></td>
        <td><?php echo $row['sysversion']; ?></td>
        <td><?php echo $row['nettype']; ?></td>
    </tr>
<?php
   }
?>
</table>
</html>

文件3 获取Agent信息 这个文件有很多代码来源是网络 侵权告知删除

<?php
header("content-type:text/html;charset=utf-8");
$Agent = $_SERVER['HTTP_USER_AGENT'];
//echo $Agent."<br>";
//显示访问用户的浏览器信息
//echo '浏览器: ' . determinebrowser($Agent) . "<br>";
//显示访问用户的操作系统平台
//echo '系统版本: ' . determineplatform($Agent). "<br>";
//显示移动设备联网方式
//echo '网络:'.getnettype($Agent)."<br>";
//正值表达式比对解析$_SERVER['HTTP_USER_AGENT']中的字符串 获取访问用户的浏览器的信息
function determinebrowser ($Agent) {
$browseragent="";   //浏览器
$browserversion=""; //浏览器的版本
if (ereg('MSIE ([0-9].[0-9]{1,2})',$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Internet Explorer";
} else if (ereg( 'Opera/([0-9]{1,2}.[0-9]{1,2})',$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Opera";
} else if (ereg( 'Firefox/([0-9.]{1,5})',$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Firefox";
}else if (ereg( 'Chrome/([0-9.]{1,2})',$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Chrome";
}
else if (ereg( 'QQ/([0-9.]{1,3})',$Agent,$version)) {
 $browserversion=$version[1];
  $browseragent="QQ";
  }
else if (ereg( 'Safari/([0-9.]{1,3})',$Agent,$version)) {
 $browseragent="Safari";
 $browserversion="";
}
else {
$browserversion="";
$browseragent="other";
}
return $browseragent.$browserversion;
}
// 同理获取访问用户的浏览器的信息
function determineplatform ($Agent) {
$browserplatform=='';
if (eregi('win',$Agent) && strpos($Agent, '95')) {
$browserplatform="Windows 95";
}
elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) {
$browserplatform="Windows ME";
}
elseif (eregi('win',$Agent) && ereg('98',$Agent)) {
$browserplatform="Windows 98";
}
elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) {
$browserplatform="Windows 2000";
}
elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) {
$browserplatform="Windows XP";
}
elseif (eregi('win',$Agent) && eregi('nt 6.0',$Agent)) {
$browserplatform="Windows Vista";
}
elseif (eregi('win',$Agent) && eregi('nt 6.1',$Agent)) {
$browserplatform="Windows 7";
}
elseif (eregi('win',$Agent) && ereg('32',$Agent)) {
$browserplatform="Windows 32";
}
elseif (eregi('win',$Agent) && eregi('nt',$Agent)) {
$browserplatform="Windows NT";
}elseif (eregi('Mobile',$Agent) && eregi("iphone",$Agent)) {
$browserplatform="iphone";
}elseif (eregi('Mobile',$Agent) && eregi("Android",$Agent)) {
$browserplatform="Android";
}elseif (eregi('Mac OS',$Agent)) {
$browserplatform="Mac OS";
}
elseif (eregi('linux',$Agent)) {
$browserplatform="Linux";
}
elseif (eregi('unix',$Agent)) {
$browserplatform="Unix";
}
elseif (eregi('sun',$Agent) && eregi('os',$Agent)) {
$browserplatform="SunOS";
}
elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) {
$browserplatform="IBM OS/2";
}
elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) {
$browserplatform="Macintosh";
}
elseif (eregi('PowerPC',$Agent)) {
$browserplatform="PowerPC";
}
elseif (eregi('AIX',$Agent)) {
$browserplatform="AIX";
}
elseif (eregi('HPUX',$Agent)) {
$browserplatform="HPUX";
}
elseif (eregi('NetBSD',$Agent)) {
$browserplatform="NetBSD";
}
elseif (eregi('BSD',$Agent)) {
$browserplatform="BSD";
}
elseif (ereg('OSF1',$Agent)) {
$browserplatform="OSF1";
}
elseif (ereg('IRIX',$Agent)) {
$browserplatform="IRIX";
}
elseif (eregi('FreeBSD',$Agent)) {
$browserplatform="FreeBSD";
}
if ($browserplatform=='') {$browserplatform = "other"; }
return $browserplatform;
}
 function getnettype ($Agent)
{
   $nettype = "";
   if (ereg("NetType/WIFI",$Agent)) {
   $nettype ="WIFI";
   }
    else if (ereg("NetType/4",$Agent)) {
    $nettype ="4G";
        }
    else if (ereg("NetType/3",$Agent)) {
    $nettype ="3G";
        }
    else if (eregi("NetType/2",$Agent)) {
    $nettype ="2G";
        }
    else {
    $nettype = "WEB";
        }   
    return $nettype;    
    }
?>

创建表结构

CREATE TABLE `ips` (
  `id` int(6) NOT NULL AUTO_INCREMENT COMMENT '自动增长',
  `uid` int(6) DEFAULT NULL COMMENT '查询者ID',
  `ip` char(15) NOT NULL COMMENT 'IP地址',
  `addr` varchar(150) DEFAULT NULL COMMENT '实际地址',
  `browse` varchar(20) DEFAULT NULL COMMENT '浏览器类型',
  `sysversion` varchar(20) DEFAULT NULL COMMENT '操作系统版本',
  `nettype` char(10) DEFAULT NULL COMMENT '网络类型:WIFI,4G,3G,2G',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8;

本文讲解了PHP获取客户端信息 ,更多相关内容请关注php中文网。

相关推荐:

php编辑用户信息

php删除用户

MYSQL的学习笔记

以上就是PHP获取客户端信息的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。