Sabit Disk Seri Numarası PHP ile imalatçı tarafından sunulmuştur Başlarken

6 Cevap php

Getting Serial Number of the Hard Drive Provided by the manufacturer through PHP : How can it be done? I want to store it in a file.

OS: Windows 2000, XP, ME, Vista ...

Evet, sabit disk seri numarasını istiyorum of the Server.

Or can it be done through Adobe AIR? Or can it be done through a C program on Windows?

C:\Documents and Settings\Administrator>dir
 Volume in drive C has no label.
 Volume Serial Number is BC16-5D5F

Is this number : BC16-5d5f unique for a hard drive? How is it different from the manufacturer given serial number?

This command
**wmic DISKDRIVE GET SerialNumber**
Displays only the following text
on my Vista Machine : 
SerialNumber

On my XP machine,
the command is unrecognized

6 Cevap

Aşağıdaki disk seri numarasını döndürür. Birden fazla sürücü ile çalışması gerektiğini, sadece birden çok sonuç alırsınız. Sadece shell_exec ile çalıştırın.

wmic DISKDRIVE GET SerialNumber

WMIC.exe windows system32 klasöründe bulunur. Ve wmic WinXP'de var yok, Ive orada kendim kullandım.

Vista üzerinde My sonuç:

C:\Windows\System32>wmic DISKDRIVE GET SerialNumber
SerialNumber
20202020202054534241354c4*snip*

Tüm harddrives OS seri numarasını sağlar eğer ben bilmiyorum.

Bu wmıc, Windows XP, Windows Vista ve Windows 7 profesyonel sürümlerinde kullanılabilir görünüyor.

PHP'nin kendisi gibi donanım erişim yolu yoktur.

Sen sahip olacak ya

  • işletim sisteminin bir komutunu kullanın ve system() veya exec() ile çağrı
  • size bilgi verecektir PHP için bir uzantı yazmak

Linux üzerinde ve kullanabileceğiniz gerekli ayrıcalık ve yapılandırma varsa $r = system("hdparm -I /dev/hda");, belirli bir sabit disk seri numarasını almak için (hd ile hda değiştirin).

hdparm -i /dev/sdX

bu olsa windows linux, emin üzerinde bulunuyor. Siz ") sistemi (" üzerinden bu yürütebilir

http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.hk.msdn.connection&tid=e41f0af2-2e76-4be6-9b7b-636e79ac0491&cat=zh_HK_3b03d742-993a-4f96-accd-1063c6bfd559&lang=zh&cr=HK&sloc=&p=1 bakabilirsiniz

Ileri bir yol olabilir.

Ben komut isteminde bir "dir" koştu zaman da, bunu gösterir:

C:\Documents and Settings\Administrator>dir
 Volume in drive C has no label.
 Volume Serial Number is BC16-5D5F

Eğer bu sizin için ne arıyorsanız?

Sana cevap söyleyemem, ama (belki birinden bile kendin yazma) uzantıları yönünde bakmak gerekecek sanırım. Ben bu PHP'nin temel olan bir şey olduğunu sanmıyorum.

Düzenleme: Ben "exec" ham gücü hakkında unuttum :-/

Do you want the hard drive from the server or a client? PHP runs on the server so getting it straight from the client doens't seem possible to me.

The manual suggest you can execute commands on you server: http://nl2.php.net/manual/en/ref.exec.php

Ne yazık ki sana hdd dizileri almak için yeterli değil Unix yapmak.

Sen kullanabilirsiniz

    $hdserial =`wmic DISKDRIVE GET SerialNumber 2>&1` 

veya

    $hdserial =`wmic bios get serialnumber 2>&1` 

Sonra o yankı.

Based on Patrick Daryll Glandien's hint, you can execute following on *nix based machines. $hdserial= hdparm -I /dev/hda

hdparm -i /dev/sda returns lesser info. But as hdparm needs root access, it did not run with php fveya me.

'2> & 1 'bölümü suggestion here den kullanılır.