PHPはクライアント情報を取得します

jacklove
リリース: 2023-03-31 16:52:01
オリジナル
8060 人が閲覧しました

テストアドレス:

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

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

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

注: ローカルの構築には Mysql データと 2 つのフォルダーが必要です

2 つのフォルダーはコードと同じ場所に配置されます

ディレクトリ配下のファイル名とフォルダ名: ./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、エージェント関連情報

開発ツール: 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=&#39;&#39;;
    if(getenv(&#39;HTTP_CLIENT_IP&#39;)&&strcasecmp(getenv(&#39;HTTP_CLIENT_IP&#39;),&#39;unknown&#39;)){
        $onlineip=getenv(&#39;HTTP_CLIENT_IP&#39;);
    } elseif(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;)&&strcasecmp(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;),&#39;unknown&#39;)){
        $onlineip=getenv(&#39;HTTP_X_FORWARDED_FOR&#39;);
    } elseif(getenv(&#39;REMOTE_ADDR&#39;)&&strcasecmp(getenv(&#39;REMOTE_ADDR&#39;),&#39;unknown&#39;)){
        $onlineip=getenv(&#39;REMOTE_ADDR&#39;);
    } elseif(isset($_SERVER[&#39;REMOTE_ADDR&#39;])&&$_SERVER[&#39;REMOTE_ADDR&#39;]&&strcasecmp($_SERVER[&#39;REMOTE_ADDR&#39;],&#39;unknown&#39;)){
        $onlineip=$_SERVER[&#39;REMOTE_ADDR&#39;];
    }
    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[&#39;data&#39;];
    return $data[&#39;country&#39;].$data[&#39;region&#39;].$data[&#39;city&#39;].$data[&#39;isp&#39;].$data[&#39;country_id&#39;];
   }
$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 (&#39;1&#39;,&#39;$ipa&#39;,&#39;$ipaddr&#39;,&#39;$bro&#39;,&#39;$sys&#39;,&#39;$getnet&#39;);";
mysql_select_db("my_db");
mysql_query(&#39;SET NAMES UTF8&#39;);
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 取得した情報を表示してデータベースを選択テーブル表示

<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(&#39;SET NAMES UTF8&#39;);
    $sql = "select * from ips order by id desc;";
    $query = mysql_query($sql,$con);
    while($row = mysql_fetch_array($query)){
?>
    <tr>
        <td><?php echo $row[&#39;id&#39;]; ?></td>
        <td><?php echo $row[&#39;ip&#39;]; ?></td>
        <td><?php echo $row[&#39;addr&#39;]; ?></td>
        <td><?php echo $row[&#39;browse&#39;]; ?></td>
        <td><?php echo $row[&#39;sysversion&#39;]; ?></td>
        <td><?php echo $row[&#39;nettype&#39;]; ?></td>
    </tr>
<?php
   }
?>
</table>
</html>
ログイン後にコピー

ファイル 3 エージェント情報の取得このファイルにはネットワーク侵害となるコード ソースが多数含まれています。削除してください

<?php
header("content-type:text/html;charset=utf-8");
$Agent = $_SERVER[&#39;HTTP_USER_AGENT&#39;];
//echo $Agent."<br>";
//显示访问用户的浏览器信息
//echo &#39;浏览器: &#39; . determinebrowser($Agent) . "<br>";
//显示访问用户的操作系统平台
//echo &#39;系统版本: &#39; . determineplatform($Agent). "<br>";
//显示移动设备联网方式
//echo &#39;网络:&#39;.getnettype($Agent)."<br>";
//正值表达式比对解析$_SERVER[&#39;HTTP_USER_AGENT&#39;]中的字符串 获取访问用户的浏览器的信息
function determinebrowser ($Agent) {
$browseragent="";   //浏览器
$browserversion=""; //浏览器的版本
if (ereg(&#39;MSIE ([0-9].[0-9]{1,2})&#39;,$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Internet Explorer";
} else if (ereg( &#39;Opera/([0-9]{1,2}.[0-9]{1,2})&#39;,$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Opera";
} else if (ereg( &#39;Firefox/([0-9.]{1,5})&#39;,$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Firefox";
}else if (ereg( &#39;Chrome/([0-9.]{1,2})&#39;,$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Chrome";
}
else if (ereg( &#39;QQ/([0-9.]{1,3})&#39;,$Agent,$version)) {
 $browserversion=$version[1];
  $browseragent="QQ";
  }
else if (ereg( &#39;Safari/([0-9.]{1,3})&#39;,$Agent,$version)) {
 $browseragent="Safari";
 $browserversion="";
}
else {
$browserversion="";
$browseragent="other";
}
return $browseragent.$browserversion;
}
// 同理获取访问用户的浏览器的信息
function determineplatform ($Agent) {
$browserplatform==&#39;&#39;;
if (eregi(&#39;win&#39;,$Agent) && strpos($Agent, &#39;95&#39;)) {
$browserplatform="Windows 95";
}
elseif (eregi(&#39;win 9x&#39;,$Agent) && strpos($Agent, &#39;4.90&#39;)) {
$browserplatform="Windows ME";
}
elseif (eregi(&#39;win&#39;,$Agent) && ereg(&#39;98&#39;,$Agent)) {
$browserplatform="Windows 98";
}
elseif (eregi(&#39;win&#39;,$Agent) && eregi(&#39;nt 5.0&#39;,$Agent)) {
$browserplatform="Windows 2000";
}
elseif (eregi(&#39;win&#39;,$Agent) && eregi(&#39;nt 5.1&#39;,$Agent)) {
$browserplatform="Windows XP";
}
elseif (eregi(&#39;win&#39;,$Agent) && eregi(&#39;nt 6.0&#39;,$Agent)) {
$browserplatform="Windows Vista";
}
elseif (eregi(&#39;win&#39;,$Agent) && eregi(&#39;nt 6.1&#39;,$Agent)) {
$browserplatform="Windows 7";
}
elseif (eregi(&#39;win&#39;,$Agent) && ereg(&#39;32&#39;,$Agent)) {
$browserplatform="Windows 32";
}
elseif (eregi(&#39;win&#39;,$Agent) && eregi(&#39;nt&#39;,$Agent)) {
$browserplatform="Windows NT";
}elseif (eregi(&#39;Mobile&#39;,$Agent) && eregi("iphone",$Agent)) {
$browserplatform="iphone";
}elseif (eregi(&#39;Mobile&#39;,$Agent) && eregi("Android",$Agent)) {
$browserplatform="Android";
}elseif (eregi(&#39;Mac OS&#39;,$Agent)) {
$browserplatform="Mac OS";
}
elseif (eregi(&#39;linux&#39;,$Agent)) {
$browserplatform="Linux";
}
elseif (eregi(&#39;unix&#39;,$Agent)) {
$browserplatform="Unix";
}
elseif (eregi(&#39;sun&#39;,$Agent) && eregi(&#39;os&#39;,$Agent)) {
$browserplatform="SunOS";
}
elseif (eregi(&#39;ibm&#39;,$Agent) && eregi(&#39;os&#39;,$Agent)) {
$browserplatform="IBM OS/2";
}
elseif (eregi(&#39;Mac&#39;,$Agent) && eregi(&#39;PC&#39;,$Agent)) {
$browserplatform="Macintosh";
}
elseif (eregi(&#39;PowerPC&#39;,$Agent)) {
$browserplatform="PowerPC";
}
elseif (eregi(&#39;AIX&#39;,$Agent)) {
$browserplatform="AIX";
}
elseif (eregi(&#39;HPUX&#39;,$Agent)) {
$browserplatform="HPUX";
}
elseif (eregi(&#39;NetBSD&#39;,$Agent)) {
$browserplatform="NetBSD";
}
elseif (eregi(&#39;BSD&#39;,$Agent)) {
$browserplatform="BSD";
}
elseif (ereg(&#39;OSF1&#39;,$Agent)) {
$browserplatform="OSF1";
}
elseif (ereg(&#39;IRIX&#39;,$Agent)) {
$browserplatform="IRIX";
}
elseif (eregi(&#39;FreeBSD&#39;,$Agent)) {
$browserplatform="FreeBSD";
}
if ($browserplatform==&#39;&#39;) {$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 &#39;自动增长&#39;,
  `uid` int(6) DEFAULT NULL COMMENT &#39;查询者ID&#39;,
  `ip` char(15) NOT NULL COMMENT &#39;IP地址&#39;,
  `addr` varchar(150) DEFAULT NULL COMMENT &#39;实际地址&#39;,
  `browse` varchar(20) DEFAULT NULL COMMENT &#39;浏览器类型&#39;,
  `sysversion` varchar(20) DEFAULT NULL COMMENT &#39;操作系统版本&#39;,
  `nettype` char(10) DEFAULT NULL COMMENT &#39;网络类型:WIFI,4G,3G,2G&#39;,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8;
ログイン後にコピー

この記事では、PHP Get client について説明します。関連コンテンツについては、php 中国語 Web サイトに注目してください。

関連する推奨事項:

php ユーザー情報の編集

php ユーザーの削除

MYSQL 学習メモ
##

以上がPHPはクライアント情報を取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!