測試地址:
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><?phpinclude_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> <?phpheader("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資訊 這個檔案有很多代碼來源是網路 侵權告知刪除
<?phpheader("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中文網。