当前位置:首页 » 编程语言 » php获取客户端

php获取客户端

发布时间: 2022-03-07 07:44:17

1. php 如何获取 客户端http header

<?php
$dir=$HTTP_GET_VARS["dir"];//.......取得上个页面传递来的路径
$file=$HTTP_GET_VARS["file"];//.......取得传递来的文件名
$url=parse_url($HTTP_REFERER);/*......取得前一页面的URL地址,并将其放入一个数组中*/
if($url[host]!=$HTTP_HOST){echo"要下载本软件请到<ahref=http://www.df365.org>东方小屋</a>";exit;}/*检查来源网站是不是自己的网站,如果不是,返回“要下载本……”*/
if(empty($dir))$dir="/";//......如果路径名为空,则为指定根目录
if(empty($file)){echo"未指定要下载的文件!";exit;}/*如果文件名为空,返回“未指定……”*/
$rootdir="文件存放的根目录";//......你的下载路径根目录
$realurl=$rootdir.$dir;//.......取得你的下载目录
chdir($realurl);//......将当前目录转到下载目录中
if(!file_exists($file)){echo"对不起,此链接已经失效,请在下载页面上向我们报告,谢谢!";exit;}//......测试文件是否存在
$filename=$file;
//发送文件头信息
header("Cache-control:private");//fixforIE
header("Content-Type:application/octet-stream");
header("Content-Length:".filesize($filename));
header("Content-Disposition:attachment;filename=$filename");
$fp=fopen($filename,'r');//以读取方式打开指定文件
fpassthru($fp);//**CORRECT**以二进制方式读取文件
fclose($fp);//关闭文件
?>

2. php获得客户端的ip和端口号

最简单的方法
$ip = $_server["remote_addr"];
echo $ip;

最实用获取用户ip地址代码
function get_real_ip() {
$ip=false;
if(!empty($_server["http_client_ip"]))
{
$ip = $_server["http_client_ip"];
}
if (!empty($_server['http_x_forwarded_for']))
{
$ips教程 = explode (", ", $_server['http_x_forwarded_for']);
if ($ip) {
array_unshift($ips, $ip);
$ip = false;
}
for ($i = 0; $i < count($ips); $i++)
{
if (!eregi ("^(10|172.16|192.168).", $ips[$i]))
{
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_server['remote_addr']);
}
echo get_real_ip();

获取ip地址与端口号
$ip =$_server["remote_addr"];
$port = $_server['remote_port'];
echo $ip.$port;

有一点意思
if(getenv('http_client_ip'))
{
$onlineip = getenv('http_client_ip');
}
elseif(getenv('http_x_forwarded_for'))
{
$onlineip = getenv('http_x_forwarded_for');
}
elseif(getenv('remote_addr'))
{
$onlineip = getenv('remote_addr');
}
else
{
$onlineip = $http_server_vars['remote_addr'];
}
echo $onlineip;
echo "
";
利用qq接口
function get_ip_place(){
$ip=file_get_contents("http://fw.qq.com/ipaddress");
$ip=str_replace('"',' ',$ip);
$ip2=explode("(",$ip);
$a=substr($ip2[1],0,-2);
$b=explode(",",$a);
return $b;
}
$ip=get_ip_place();
print_r($ip);

3. php 如何获取客户端的端口

不需要。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。

当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了****端口,你过来连接我”。于是服务器从20端口向客户端的****端口发送连接请求,建立一条数据链路来传送数据。
也就是说,默认被动的端口是21

4. php的http请求怎么获取客户端ip

环境变量REMORE_ADDR就是客户端的IP地址,例如:
echo $ENV{'REMORE_ADDR'};

5. php 获取客户端的电脑名称

PHP在局域网中获取客户端计算机名、IP地址
<?

//php获取ip的算法

if(getenv('HTTP_CLIENT_IP')) {

$onlineip = getenv('HTTP_CLIENT_IP');

} elseif(getenv('HTTP_X_FORWARDED_FOR')) {

$onlineip = getenv('HTTP_X_FORWARDED_FOR');

} elseif(getenv('REMOTE_ADDR')) {

$onlineip = getenv('REMOTE_ADDR');

} else {

$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];

}

exec ("ping $onlineip");

$macaddress=exec ("arp -a | find /i".' "'.$onlineip.'"');

$computername=exec ('nbtstat -A'.' '.$onlineip.' | find /i "20"');

$MacName=(preg_split("/\s+/", trim($macaddress)));

$UserName=(preg_split("/\s+/", trim($computername)));

echo "计算机名:".$UserName[0]." --- "."IP 地址:".$MacName[0]." --- "."MAC 地址:".$MacName[1];

?>

class GetMacAddr

{

var $return_array = array(); // 返回带有MAC地址的字串数组

var $mac_addr=array();

function GetMacAddr()

{

switch (strtolower(PHP_OS) )

{

case "linux":$this->forLinux();break;

case "solaris":break;

case "unix":break;

case "aix":break;

default:$this->forWindows();break;

}

//www.51qgj.com

$temp_array = array();

foreach ( $this->return_array as $value )

{

if ( preg_match( "/[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f]/i", $value, $temp_array ) )

{

$this->mac_addr[] = $temp_array[0];

}

}

unset($temp_array);

return $this->mac_addr;

}

function forWindows()

{

@exec("ipconfig /all", $this->return_array);

if ( $this->return_array )

return $this->return_array;

else{

$ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe";

if ( is_file($ipconfig) )

@exec($ipconfig." /all", $this->return_array);

else

@exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->return_array);

return $this->return_array;

}

}

function forLinux()

{

@exec("ifconfig -a", $this->return_array);

return $this->return_array;

}

}

$mac = new GetMacAddr();

echo "<pre>";

print_r( $mac->mac_addr);

?>
mac测试过 可能无效

6. php 如何获取客户端唯一标识

回答你第一个问题, 相对情况下, 获取客户端, 只能是ip, cookie
但,就如你说的, ip会变, cookie会排除, 所以嘛, 没有办法了!
不像桌面应用程序(软件), 由于是直接运行在用户电脑的上的, 所以可以获取网卡地址, 这个比较唯一(但也不绝对, 有软件可以改网卡地址)
但php一般是网站形式, 获取客户端的网卡地址, 需要用户授权允许, 否则是获取不到的!

7. php 获取访问客户端是pc端还是手机端

都有可能。我用手机浏览器访问你的web应用,获取到我的就是移动端的,我用电脑访问,那获取到的自然就是pc端的。所以像ecshop这些开源的php产品,他有个程序判断客户端访问是移动端还是pc端,然后路由到不同的处理程序。

8. php如何获取客户端唯一标识符IPmac地址

<?php
classGetMacAddr{
var$return_array=array();//返回带有MAC地址的字串数组
var$mac_addr;
functionGetMacAddr($os_type){
switch(strtolower($os_type)){
case"linux":$this->forLinux();break;
default:$this->forWindows();break;
}
$temp_array=array();
foreach($this->return_arrayas$value){
if(preg_match("/[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f]/i",$value,$temp_array)){
$this->mac_addr=$temp_array[0];
break;
}
}
unset($temp_array);
return$this->mac_addr;
}
functionforWindows(){
@exec("ipconfig/all",$this->return_array);
if($this->return_array)
return$this->return_array;
else{
$ipconfig=$_SERVER["WINDIR"]."system32ipconfig.exe";
if(is_file($ipconfig))
@exec($ipconfig."/all",$this->return_array);
else
@exec($_SERVER["WINDIR"]."systemipconfig.exe/all",$this->return_array);
return$this->return_array;
}
}
}
//---实例化类
$mac=newGetMacAddr(PHP_OS);
echo$mac->mac_addr;
echo"<br/>";
echomd5($mac->mac_addr);
?>
以上代码是获取mac地址的代码,在网上抄的,但实测有效,括号,我x,我第一次知道原来php也可以执行命令行。。。

至于如何限制,应该是去截取mac的一部分经行if判断就可以了,你先尝试一下

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

<?php
echo"<br>".$_SERVER['PHP_SELF'];#当前正在执行脚本的文件名,与documentroot相关
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认证功能,这个变量便是认证的类型。
?>

10. PHP如何获取客户端(用户PC) COOKIE内的值

setcookie
的第三个参数,超时时间,设置上去就可以了
如果不同页面读取,还有$path,$domain等有关,请设置正确的值
手册中的demo
<?php
$value
=
'something
from
somewhere';
setcookie("TestCookie",
$value);
setcookie("TestCookie",
$value,
time()+3600);
/*
expire
in
1
hour
*/
setcookie("TestCookie",
$value,
time()+3600,
"/~rasmus/",
".example.com",
1);
?>

热点内容
php判断手机访问 发布:2025-01-13 10:46:06 浏览:762
数据库十张表 发布:2025-01-13 10:41:50 浏览:395
仿php 发布:2025-01-13 10:41:40 浏览:811
后缀解压什么意思 发布:2025-01-13 10:35:17 浏览:185
索尼安卓11如何退回安卓10 发布:2025-01-13 10:24:09 浏览:127
程序编译结构 发布:2025-01-13 10:24:08 浏览:90
创建邮箱地址服务器连接错误 发布:2025-01-13 09:49:24 浏览:723
linux编辑文档 发布:2025-01-13 09:47:51 浏览:435
二手制冷压缩机 发布:2025-01-13 09:43:59 浏览:585
网鱼电脑密码多少 发布:2025-01-13 09:33:46 浏览:464