1. 在linux下使用php獲取PC硬體可否
在linux你執行dmidecode就可以查看你機器的硬體配置信息了。
幫你找了一個這樣的東東,不知道對你有沒有幫助:PHP調用COM獲得伺服器硬體信息
function sys_windows() {
$objLocator = new COM("WbemScripting.SWbemLocator");
$wmi = $objLocator->ConnectServer();
$prop = $wmi->get("Win32_PnPEntity");
//CPU
$cpuinfo = GetWMI($wmi,"Win32_Processor", array("Name","L2CacheSize","NumberOfCores"));
$res['CPU個數'] = $cpuinfo[0]['NumberOfCores'];
if (null == $res['CPU個數']) {
$res['CPU個數'] = 1;
}
for ($i=0;$i<$res['cpu']['num'];$i++){
$res['CPU型號'] .= $cpuinfo[0]['Name']."<br>";
$res['二級緩存'] .= $cpuinfo[0]['L2CacheSize']."<br>";
}
// SYSINFO
$sysinfo = GetWMI($wmi,"Win32_OperatingSystem", array('LastBootUpTime','TotalVisibleMemorySize','FreePhysicalMemory','Caption','CSDVersion','SerialNumber','InstallDate'));
$res['操作系統版本'] = $sysinfo[0]['Caption']." ".$sysinfo[0]['CSDVersion'];
$res['操作系統序列號'] = "{$sysinfo[0]['SerialNumber']} 於".date('Y年m月d日H:i:s',strtotime(substr($sysinfo[0]['InstallDate'],0,14)))."安裝";
//UPTIME
$res['最後重啟時間'] = $sysinfo[0]['LastBootUpTime'];
$sys_ticks = 3600*8 + time() - strtotime(substr($res['最後重啟時間'],0,14));
$min = $sys_ticks / 60;
$hours = $min / 60;
$days = floor($hours / 24);
$hours = floor($hours - ($days * 24));
$min = floor($min - ($days * 60 * 24) - ($hours * 60));
if ($days !== 0) $ress['day'] = $days."天";
if ($hours !== 0) $ress['hours'] .= $hours."小時";
$res['最後重啟時間'] = $ress['day'].$ress['hours'].$min."分鍾";
//MEMORY
$res['物理內存'] = $sysinfo[0]['TotalVisibleMemorySize'];
$res['剩餘內存'] = $sysinfo[0]['FreePhysicalMemory'];
$res['已使用內存'] = $res['物理內存'] - $res['剩餘內存'];
$res['使用率'] = round($res['已使用內存'] / $res['物理內存']*100,2);
$swapinfo = GetWMI($wmi,"Win32_PageFileUsage", array('AllocatedBaseSize','CurrentUsage'));
// TODO swp區獲取
$res['交換分區'] = $swapinfo[0][AllocatedBaseSize];
$res['已經使用'] = $swapinfo[0][CurrentUsage];
$res['剩餘內存'] = $res['swapTotal'] - $res['swapUsed'];
$res['使用率'] = (floatval($res['swapTotal'])!=0)?round($res['swapUsed']/$res['swapTotal']*100,2):0;
// LoadPercentage
$loadinfo = GetWMI($wmi,"Win32_Processor", array("LoadPercentage"));
$res['系統平均負載'] = $loadinfo[0]['LoadPercentage'];
return $res;
}
function GetWMI($wmi,$strClass, $strValue = array()) {
$arrData = array();
$objWEBM = $wmi->Get($strClass);
$arrProp = $objWEBM->Properties_;
$arrWEBMCol = $objWEBM->Instances_();
foreach($arrWEBMCol as $objItem) {
@reset($arrProp);
$arrInstance = array();
foreach($arrProp as $propItem) {
eval("\$value = \$objItem->" . $propItem->Name . ";");
if (empty($strValue)) {
$arrInstance[$propItem->Name] = trim($value);
} else {
if (in_array($propItem->Name, $strValue)) {
$arrInstance[$propItem->Name] = trim($value);
}
}
}
$arrData[] = $arrInstance;
}
return $arrData;
}
2. php怎樣獲取客戶端電腦物理地址
設備的硬體信息要程序執行在當前系統上才可以取得。
PHP是執行在服務端的,無法做到。
只能利用第三方插件工具等取得,再提交給PHP。
3. php可以對硬體操作嗎
完全可以的,php可以操作串口rs232的。
例子如下:
<?php
// --------------------------------------------------------------------------
// File name : RS232_Server.php
// Description : RS232演示上位機程序
// Requirement : PHP 5.1.4 (cli) (http://www.php.net)
//
// Copyright(C), HonestQiao, 2006, All Rights Reserved.
//
// Author: HonestQiao ([email protected]/QQ:5601680)
//
// 程序簡介:
// 本程序與RS232_Client構成一個完整的演示系統,展示了PHP在RS232串口通訊上的應用。
// 程序之中實現了一個基礎但是完整的RS232通訊協議(HQB232),通訊協議格式如下:
// 協議內容:
// C->S 01 //請求通訊
// S->C 02 //響應通訊
// C->S LEN DATA //LEN表示數據(DATA)長度 DATA表示實際數據
// C->S 03 //結束通訊
// 說明:S表示上位機 C表示下位機
// HQB232表示HonestQiao演示的基礎(Base)RS232通訊協議,包含了協議的
// 請求和響應,數據幀的結構。
// 演示過程為通訊的請求和響應,十次數據幀的發送, 通訊的結束
// 數據幀的結構為當前的序號,microtime(),隨機字元串
//
// 歡迎探討PHP在RS232串口通訊上的應用。
// --------------------------------------------------------------------------
set_time_limit(0);
exec('mode COM1: baud=115200 data=8 stop=1 parity=n xon=on');
$fd = dio_open('COM1:', O_RDWR);
if(!$fd)
{
die("Error when open COM1");
}
$ff = dio_stat($fd);print_r($ff);
echo "HQB232 SERVER is listenning on COM1\n";
/// read
$len = 2;
$t=0;while (($t++)<1000)
{
$data = dio_read($fd, $len);
if ($data) {
if($data==chr(0).chr(1)){
echo "S_RECV:01\n";
echo "S_SEND:02\n";
dio_write($fd,chr(0).chr(2));
break;
}
}
}
/// read
$len = 2;
$t=0;while (($t++)<1000)
{
$len = 2;
$data = dio_read($fd, $len);
if($data==chr(0).chr(3)){
echo "S_RECV:03\n";
break;
}
elseif ($data) {
$len = intval($data);
$data = dio_read($fd, $len);
if($data){
echo "S_RECV:($len)$data\n";
}
}
}
dio_close($fd);
?>
4. PHP,ASP網站程序是怎麼運行的,對硬體設備有哪些要求佔用內存和CPU如何
1、都是通過底層文件運行,php就是php文件,asp就是asp文件。
2、運行環境apache+mysql+liun完美的支持php;window2003+access是asp運行環境;
3、php相對於asp空間,內存便宜,其佔用機制分為liunx和window,不能比較。
5. php中有什麼函數可以獲取電腦硬體信息
//獲取電腦的CPU信息
functionOnlyU(){
$a='';
$b=array();
if(function_exists('exec')){
if(mailto:!@exec(/all",$b)){
returnfalse;
}
}elseif(function_exists('system')){
ob_start();
if(mailto:!@system(/all")){
returnfalse;
}else{
}
$b=ob_get_contents();
ob_end_clean();
$b=explode(" ",$b);//print_r($b);
array_pop($b);
}else{
returnfalse;
}
$all=sizeof($b);
for($i=0;$i<$all;$i++){
if(strpos($b[$i],"Description")!==false){
if(strpos($b[$i+1],"PhysicalAddress")!==false){
$c=explode(":",$b[$i+1]);
$a=trim($c[1]);
break;
}
}
}//Endfor
returnempty($a)?false:$a;
}//EndfunctionOnlyU
//獲取網卡的MAC的地址
functiongetMAC(){
@exec("ipconfig/all",$array);
for($Tmpa;$Tmpa<count($array);$Tmpa++){
if(eregi("Physical",$array[$Tmpa])){
$mac=explode(":",$array[$Tmpa]);
return$mac[1];
}
}
}
6. PHP能獲取用戶電腦配置信息嗎
不可以。
只能得到 諸如操作系統 和 瀏覽器
可以考慮用ip 或者 cookie 來做判斷
ls幾個兄弟 說的是獲取伺服器的信息 而非客戶機
另
如何用PHP語言記錄客戶登錄時的硬體信息,以便日後進行對比.
換句話說:當客戶換機登錄時,能判斷出來.
這個矛盾的 既然換了機器 那硬體也不是不一樣了嗎?
7. 如何通過php代碼,獲取訪問網頁的客戶端電腦裡面的文件夾目錄名字。能實現不
這個通過PHP是實現不了的
原因在於PHP是伺服器語言,所做的工作是將代碼現實成html,通過網路傳輸給客戶端電腦。。
你可以向其他辦法,比如C編寫客戶端軟體。。
8. php可以對硬體操作嗎
可以的,php可以操作串口rs232的。
因為PHP有個函數叫exec,非常有用的一個函數,可以運行「系統命令」。例如在ubuntu系統上,跑動 killMe.php, 來上一句:
<?phpexec('sudoumount/dev/');
//linuxexec('sudoshutdown-hnow');
//linuxexec("木馬.exe"); //Window
還可以關閉網路、配置網路、殺掉進程等等 。