PHP 可以获取客户端哪些访问信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 可以获取客户端哪些访问信息相关的知识,希望对你有一定的参考价值。

<?php
echo "<br>".$_SERVER[\'PHP_SELF\'];#当前正在执行脚本的文件名,与 document root相关
echo "<br>".$_SERVER[\'argv\'];#传递给该脚本的参数。
echo "<br>".$_SERVER[\'argc\']; #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
echo "<br>".$_SERVER[\'GATEWAY_INTERFACE\']; #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。
echo "<br>".$_SERVER[\'SERVER_NAME\']; #当前运行脚本所在服务器主机的名称。
echo "<br>".$_SERVER[\'SERVER_SOFTWARE\']; #服务器标识的字串,在响应请求时的头部中给出。
echo "<br>".$_SERVER[\'SERVER_PROTOCOL\']; #请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
echo "<br>".$_SERVER[\'REQUEST_METHOD\']; #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
echo "<br>".$_SERVER[\'QUERY_STRING\']; #查询(query)的字符串。
echo "<br>".$_SERVER[\'DOCUMENT_ROOT\']; #当前运行脚本所在的文档根目录。在服务器配置文件中定义。
echo "<br>".$_SERVER[\'HTTP_ACCEPT\']; #当前请求的 Accept: 头部的内容。
echo "<br>".$_SERVER[\'HTTP_ACCEPT_CHARSET\']; #当前请求的 Accept-Charset: 头部的内容。例如:“iso-8859-1,*,utf-8”。
echo "<br>".$_SERVER[\'HTTP_ACCEPT_ENCODING\']; #当前请求的 Accept-Encoding: 头部的内容。例如:“gzip”。
echo "<br>".$_SERVER[\'HTTP_ACCEPT_LANGUAGE\'];#当前请求的 Accept-Language: 头部的内容。例如:“en”。
echo "<br>".$_SERVER[\'HTTP_CONNECTION\']; #当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。
echo "<br>".$_SERVER[\'HTTP_HOST\']; #当前请求的 Host: 头部的内容。
echo "<br>".$_SERVER[\'HTTP_REFERER\']; #链接到当前页面的前一页面的 URL 地址。
echo "<br>".$_SERVER[\'HTTP_USER_AGENT\']; #当前请求的 User_Agent: 头部的内容。
echo "<br>".$_SERVER[\'HTTPS\'];# — 如果通过https访问,则被设为一个非空的值(on),否则返回off
echo "<br>".$_SERVER[\'REMOTE_ADDR\']; #正在浏览当前页面用户的 IP 地址。
echo "<br>".$_SERVER[\'REMOTE_HOST\']; #正在浏览当前页面用户的主机名。
echo "<br>".$_SERVER[\'REMOTE_PORT\']; #用户连接到服务器时所使用的端口。
echo "<br>".$_SERVER[\'SCRIPT_FILENAME\']; #当前执行脚本的绝对路径名。
echo "<br>".$_SERVER[\'SERVER_ADMIN\']; #管理员信息
echo "<br>".$_SERVER[\'SERVER_PORT\'];  #服务器所使用的端口
echo "<br>".$_SERVER[\'SERVER_SIGNATURE\']; #包含服务器版本和虚拟主机名的字符串。
echo "<br>".$_SERVER[\'PATH_TRANSLATED\']; #当前脚本所在文件系统(不是文档根目录)的基本路径。
echo "<br>".$_SERVER[\'SCRIPT_NAME\']; #包含当前脚本的路径。这在页面需要指向自己时非常有用。
echo "<br>".$_SERVER[\'REQUEST_URI\']; #访问此页面所需的 URI。例如,“/index.html”。
echo "<br>".$_SERVER[\'PHP_AUTH_USER\']; #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
echo "<br>".$_SERVER[\'PHP_AUTH_PW\'];  #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
echo "<br>".$_SERVER[\'AUTH_TYPE\'];  #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
?>
参考技术A

  主要是看浏览器发过来的HTTP Request请求头里面的数据(可通过 phpinfo()查看):

  常见的有:User-Agent , Cookie 等

  eg:

  User-Agent    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36

参考技术B <?php
echo '<pre>';
print_r($_SERVER);
echo '</pre>';
?>
================
把上面的代码复制到PHP运行平台上就知道了
参考技术C php是一种弱类型的程序语言,但是最web的,所以多用于网站建设;
在程序语言中有系统全局函数:
$_SERVER

能够获取部分浏览器信息和客户端IP等;
参考技术D php可以通过$_SERVER 获得客户端的浏览器,ip等相关信息。

php获取客户端IP,国家,省份,地区,ISP等信息

php获取客户端IP,国家,省份,地区,ISP等信息,首先获取获取客户端的公网ip,开始本地搭建的环境,本地访问获取到的是127.0.0.1,然后用138的接口可以实现curl模拟客户端访问 http://city.ip138.com/ip2city.asp 可看到真实客户端的ip。

<?php 
header(‘Content-Type:text/html;Charset=utf-8‘);</code>

//获取ip方法 -- 如果获取不精准可以用第三方获取 http://city.ip138.com/ip2city.asp
function GetIP(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER[‘REMOTE_ADDR‘]) && $_SERVER[‘REMOTE_ADDR‘] && strcasecmp($_SERVER[‘REMOTE_ADDR‘], "unknown"))
$ip = $_SERVER[‘REMOTE_ADDR‘];
else
$ip = "unknow";
return($ip);
}
//新浪接口,获取ip所在国家,地域。
function GetIpLookup($ip = ‘‘){
if(empty($ip)){
$ip = GetIp();
}
$res = @file_get_contents(‘http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&&ip=‘ . $ip);
if(empty($res)){ return false; }
$jsonMatches = array();
preg_match(‘#{.+?}#‘, $res, $jsonMatches);
if(!isset($jsonMatches[0])){ return false; }
$json = json_decode($jsonMatches[0], true);
if(isset($json[‘ret‘]) && $json[‘ret‘] == 1){
$json[‘ip‘] = $ip;
unset($json[‘ret‘]);
}else{
return false;
}
return $json;
}

$ipInfos = GetIpLookup(); //IP地址
print_r($ipInfos); //打印数组

//测试url: http://127.0.0.1/ip.php

以上是关于PHP 可以获取客户端哪些访问信息的主要内容,如果未能解决你的问题,请参考以下文章

php,js等,能通过浏览器取得访问者的mac地址吗?还能取得客户的哪些信息?

php获取客户端IP,国家,省份,地区,ISP等信息

php获取客户端IP,国家,省份,地区,ISP等信息

php之cookie

php怎样获取客户端电脑物理地址

如何获取PHP客户端及服务器端IP了?