测试地址:
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中文网其他相关文章!

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

你应该关心DependencyInjection(DI),因为它能让你的代码更清晰、更易维护。1)DI通过解耦类,使其更模块化,2)提高了测试的便捷性和代码的灵活性,3)使用DI容器可以管理复杂的依赖关系,但要注意性能影响和循环依赖问题,4)最佳实践是依赖于抽象接口,实现松散耦合。

是的,优化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)优化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,并避免使用

theKeyStrategiestosiminificallyBoostphpapplicationPermenCeare:1)useOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)优化AtabaseInteractionswithPreparedStateTemtStatementStatementSandProperIndexing,3)配置

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版
中文版,非常好用

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境