ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: rnon ที่ 12 กุมภาพันธ์ 2013, 19:44:23



หัวข้อ: [ถาม] การหาหมายเลขฮาร์ดดิสก์
เริ่มหัวข้อโดย: rnon ที่ 12 กุมภาพันธ์ 2013, 19:44:23
ไม่ทราบว่าเราสามารถหาหมายเลขฮาร์ดดิสก์ได้ยังไงบ้างครับ

แบบเวลาคนเข้าเว็บแล้วดึงเอา หมายเลขฮาร์ดดิสก์ ของคนนั้นได้

พอจะเป็นไปได้ไหมครับ

 :wanwan017: :wanwan017: :wanwan017:

เสริม

พอดีผมใช้โปรแกรมอื่นดึงแล้วมันได้ 9 ตัว (ต้องการตัวนี้)

มันไม่ใช่

shell_exec('wmic DISKDRIVE GET SerialNumber 2>&1') อันนี้ออกมาอีกแบบ (ไม่ต้องการตัวนี้)


หัวข้อ: Re: [ถาม] การหาหมายเลขฮาร์ดดิสก์
เริ่มหัวข้อโดย: BrainFreeze ที่ 12 กุมภาพันธ์ 2013, 19:45:22
ไม่น่าจะสามารถทำได้นะครับ


หัวข้อ: Re: [ถาม] การหาหมายเลขฮาร์ดดิสก์
เริ่มหัวข้อโดย: Misaka ที่ 12 กุมภาพันธ์ 2013, 19:47:06
java ช่วยคุณได้


หัวข้อ: Re: [ถาม] การหาหมายเลขฮาร์ดดิสก์
เริ่มหัวข้อโดย: thaigoodskin ที่ 12 กุมภาพันธ์ 2013, 19:50:11
(ไอเดีย)

ถ้าลองเขียน scripts ให้เป็นลักษณะ ไวรัส เข้าไปล้วงข้อมูลเครื่องผู้เข้าชม แล้วไปดึงเอา system info ออกมา ก็น่าจะได้  :wanwan009:


หัวข้อ: Re: [ถาม] การหาหมายเลขฮาร์ดดิสก์
เริ่มหัวข้อโดย: saratlim ที่ 12 กุมภาพันธ์ 2013, 20:08:52
เอาไปทำไม :wanwan023:


หัวข้อ: Re: [ถาม] การหาหมายเลขฮาร์ดดิสก์
เริ่มหัวข้อโดย: rnon ที่ 12 กุมภาพันธ์ 2013, 20:12:52
ไม่น่าจะสามารถทำได้นะครับ

java ช่วยคุณได้

(ไอเดีย)

ถ้าลองเขียน scripts ให้เป็นลักษณะ ไวรัส เข้าไปล้วงข้อมูลเครื่องผู้เข้าชม แล้วไปดึงเอา system info ออกมา ก็น่าจะได้  :wanwan009:


ขอบคุณทุกท่านมากครับ
ค้นแล้วได้อันนี้มายังใช้ไม่เป็นเดียวเก็บไว้ก่อน

Motherboard serial number

โค๊ด:
import java.io.File;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class MiscUtils {
  private MiscUtils() {  }

  public static String getMotherboardSN() {
  String result = "";
    try {
      File file = File.createTempFile("realhowto",".vbs");
      file.deleteOnExit();
      FileWriter fw = new java.io.FileWriter(file);

      String vbs =
         "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
        + "Set colItems = objWMIService.ExecQuery _ \n"
        + "   (\"Select * from Win32_BaseBoard\") \n"
        + "For Each objItem in colItems \n"
        + "    Wscript.Echo objItem.SerialNumber \n"
        + "    exit for  ' do the first cpu only! \n"
        + "Next \n";

      fw.write(vbs);
      fw.close();
      Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
      BufferedReader input =
        new BufferedReader
          (new InputStreamReader(p.getInputStream()));
      String line;
      while ((line = input.readLine()) != null) {
         result += line;
      }
      input.close();
    }
    catch(Exception e){
        e.printStackTrace();
    }
    return result.trim();
  }

  public static void main(String[] args){
    String cpuId = MiscUtils.getMotherboardSN();
    javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
         null, cpuId, "Motherboard serial number",
         javax.swing.JOptionPane.DEFAULT_OPTION);
  }
}

Hard disk serial number

โค๊ด:
import java.io.File;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class DiskUtils {
  private DiskUtils() {  }

  public static String getSerialNumber(String drive) {
  String result = "";
    try {
      File file = File.createTempFile("realhowto",".vbs");
      file.deleteOnExit();
      FileWriter fw = new java.io.FileWriter(file);

      String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"
                  +"Set colDrives = objFSO.Drives\n"
                  +"Set objDrive = colDrives.item(\"" + drive + "\")\n"
                  +"Wscript.Echo objDrive.SerialNumber";  // see note
      fw.write(vbs);
      fw.close();
      Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
      BufferedReader input =
        new BufferedReader
          (new InputStreamReader(p.getInputStream()));
      String line;
      while ((line = input.readLine()) != null) {
         result += line;
      }
      input.close();
    }
    catch(Exception e){
        e.printStackTrace();
    }
    return result.trim();
  }

  public static void main(String[] args){
    String sn = DiskUtils.getSerialNumber("C");
    javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
         null, sn, "Serial Number of C:",
         javax.swing.JOptionPane.DEFAULT_OPTION);
  }
}

โค๊ด:
private string GetHDDSerialNumber(){
  string harddiskno = "";
  ArrayList hdCollection = new ArrayList();
  ManagementObjectSearcher search = new ManagementObjectSearcher("SELECT * FROM   Win32_PhysicalMedia");
  int i = 0;
  foreach(ManagementObject wmi_HD in search.Get())
  {
        // get the hard drive from collection
        
        HardDrive hd = (HardDrive)hdCollection[i];


        // get the hardware serial no.
        if (wmi_HD["SerialNumber"] == null)
                harddiskno = "No Disk Found";
        else
                harddiskno = wmi_HD["SerialNumber"].ToString();


        i++;
  }
  return  harddiskno ;
}


หัวข้อ: Re: [ถาม] การหาหมายเลขฮาร์ดดิสก์
เริ่มหัวข้อโดย: rnon ที่ 12 กุมภาพันธ์ 2013, 20:14:25
เอาไปทำไม :wanwan023:

อยากให้โปรแกรมที่ผมเขียนทำงานเฉพาะเครื่องที่กำหนดครับ
คือให้มันเช็คหมายเลขฮาร์ดดิสก์ครับ