當前位置:首頁 » 編程語言 » 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);
?>

熱點內容
索尼安卓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
如何取消子賬號密碼 發布:2025-01-13 09:22:41 瀏覽:347
抖音搜索有緩存 發布:2025-01-13 09:17:28 瀏覽:590
c語言字元數組連接 發布:2025-01-13 08:55:11 瀏覽:901
國二c語言編程題目 發布:2025-01-13 08:45:41 瀏覽:285