Re: Disk serial number
| From: | Tom Rogers | Date: | Fri, 23 Jul 2004 00:22:39 +0000 |
| Subject: | Re: Disk serial number | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-191593@lists.php.net to get a copy of this message | ||
Hi,
Friday, July 23, 2004, 8:26:56 AM, you wrote:
R> Hi,
R> Is there a way to get with PHP script ( maybe with some module) serial
R> number of the hard disk?
R> Thanks in advance!
On windows you can use the win32api like this:
<?php
dl("php_w32api.dll");
$api =& new win32;
$api->registerfunction("long GetLastError
Alias GetError ()
From kernel32.dll");
$api->registerfunction("long GetVolumeInformationA
Alias GetVolumeInformation
(string a, string &b, int c, int &d, int &e, int &f, string &g, int h)
From kernel32.dll");
$drive = "C:\\";
$serialNo = 0;
$MaximumComponentLength = 0;
$FileSystemFlags = 0;
$VolumeNameSize = 260;
$VolumeNameBuffer = str_repeat("\0", $VolumeNameSize);
$FileSystemNameSize = 260;
$FileSystemNameBuffer = str_repeat("\0", $FileSystemNameSize);
if(!$result = $api->GetVolumeInformation(
$drive,
$VolumeNameBuffer,
$VolumeNameSize,
$serialNo,
$MaximumComponentLength,
$FileSystemFlags,
$FileSystemNameBuffer,
$FileSystemNameSize)){
$error = $api->getError();
echo $drive.' Oops error: '.$error."\n";
}
echo "Drive $drive (".trim($VolumeNameBuffer).") Serial number $serialNo\n";
?>
(The stock win32api dll will probably crash with that many variables so
let me know if you want a working version.)
--
regards,
Tom