Linux下获取CPUID、硬盘序列号与 MAC地址

Linux下获取CPUID、硬盘序列号与 MAC地址在很多系统软件的开发中,需要使用一些系统的唯一性信息。

所以,得到主机的CPUID、硬盘序列号及网卡的MAC地址,就成个一件很重要的应用。

本人经过一番google即自己的钻研,基本上实现了这几个功能。

需要的准备知识有:1.GCC的嵌入汇编,具体的GCC嵌入汇编知识,请参考相关手册2.ioctl系统调用,具体的调用方法,请查看手册页获取CPUID按照网上提供的说明,CPUID并不是所有的Intel CPU都支持的。

如果支持,汇编调用为:eax置0000_0003,调用cpuid。

以下为实现代码(在我的CPU上,并没有得到):#define cpuid(in,a,b,c,d) asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (in)); static intgetcpuid (char *id, size_t max){int i;unsigned long li, maxi, maxei, ebx, ecx, edx, unused;cpuid (0, maxi, unused, unused, unused);maxi &= 0xffff;if (maxi < 3){return -1;}cpuid (3, eax, ebx, ecx, edx);snprintf (id, max, "%08lx %08lx %08lx %08lx", eax, ebx, ecx, edx);fprintf (stdout, "get cpu id: %s\n", id);return 0;}获取硬盘序列号这个的实现,采用的是读取/etc/mtab文件,找到/(即根目录)挂载的设备文件,然后打开它,再用系统调用 ioctl来实现的。

ioctl第二个参数为HDIO_GET_IDENTITY, 获得指定文件描述符的标志号ioctl的第三个参数为struct hd_driveid *,在linux/hdreg.h中,struct hd_driveid 的声明有struct hd_driveid {unsigned short config; /* lots of obsolete bit flags */unsigned short cyls; /* Obsolete, "physical" cyls */unsigned short reserved2; /* reserved (word 2) */unsigned short heads; /* Obsolete, "physical" heads */unsigned short track_bytes; /* unformatted bytes per track */unsigned short sector_bytes; /* unformatted bytes per sector */unsigned short sectors; /* Obsolete, "physical" sectors per track */ unsigned short vendor0; /* vendor unique */unsigned short vendor1; /* vendor unique */unsigned short vendor2; /* Retired vendor unique */unsigned char serial_no[20]; /* 0 = not_specified */unsigned short buf_type; /* Retired */unsigned short buf_size; /* Retired, 512 byte increments* 0 = not_specified*/……};,这其中,serial_no为硬盘的序列号。

如果此项为0,则为没有提供。

思路明确了,以下为实现代码:static intgetdiskid (char *id, size_t max){int fd;struct hd_driveid hid;FILE *fp;char line[0x100], *disk, *root, *p;fp = fopen ("/etc/mtab", "r");if (fp == NULL){fprintf (stderr, "No /etc/mtab file.\n");return -1;}fd = -1;while (fgets (line, sizeof line, fp) != NULL){disk = strtok (line, " ");if (disk == NULL){continue;}root = strtok (NULL, " ");if (root == NULL){continue;}if (strcmp (root, "/") == 0){for (p = disk + strlen (disk) - 1; isdigit (*p); p --){*p = '\0';}fd = open (disk, O_RDONLY);break;}}fclose (fp);if (fd < 0){fprintf (stderr, "open hard disk device failed.\n");return -1;}if (ioctl (fd, HDIO_GET_IDENTITY, &hid) < 0){fprintf (stderr, "ioctl error.\n");return -1;}close (fd);snprintf (id, max, "%s", hid.serial_no);fprintf (stdout, "get hard disk serial number: %s\n", id);return 0;}获取MAC地址通过创建一个socket,然后bind特定的IP地址,就可以通过ioctl得到这个套按地绑定的网络接口名称。

然后再通过网络接口名称,得到MAC地址。

如果ioctl的第二个参数为SIOCGIFNAME, 则获得指定网络接口的名称;如果ioctl的第二个参数为SIOCGIFHWADDR,则获得指定网络接口的MAC地址ioctl的第三个参数为struct ifreq *,在linux/if.h头文件里,struct ifreq声明如下:struct ifreq{#define IFHWADDRLEN 6union{char ifrn_name[IFNAMSIZ]; /* if name, e.g. "en0" */} ifr_ifrn;union {struct sockaddr ifru_addr;struct sockaddr ifru_dstaddr;struct sockaddr ifru_broadaddr;struct sockaddr ifru_netmask;struct sockaddr ifru_hwaddr;short ifru_flags;int ifru_ivalue;int ifru_mtu;struct ifmap ifru_map;char ifru_slave[IFNAMSIZ]; /* Just fits the size */char ifru_newname[IFNAMSIZ];void * ifru_data;struct if_settings ifru_settings;} ifr_ifru;},其中,ifrn_name为网络接口的名称,ifr_ifru.ifru_hwaddr为网络接口的MAC地址。

#ifndef MAX_IFINDEX# define MAX_IFINDEX 8#endifstatic intgetmacaddr (const char *ip, char *id, size_t max){int i, sockfd;struct sockaddr_in *loc;struct ifreq req[1];sockfd = socket (AF_INET, SOCK_DGRAM, 0);if (sockfd < 0){fprintf (stderr, "Unable to create socket.\n");return -1;}for (i = 0; i <= MAX_IFINDEX; ++ i){req->ifr_ifindex = i;if (ioctl (sockfd, SIOCGIFNAME, req) < 0){fprintf (stderr, "ioctl error: %s\n", strerror (errno));continue;}if (ioctl (sockfd, SIOCGIFADDR, req) < 0){fprintf (stderr, "ioctl interface index [%d] error: %s\n", i, strerror (errno));continue;}loc = (struct sockaddr_in *) (&(req->ifr_ifru.ifru_addr));if (loc->sin_addr.s_addr == inet_addr (ip)){fprintf (stderr, "%s bind at %s.\n", ip, req->ifr_name);break;}}if (i == MAX_IFINDEX){fprintf (stderr, "input IP error.\n");close (sockfd);return -1;}if (ioctl (sockfd, SIOCGIFHWADDR, req) < 0){fprintf (stderr, "ioctl error: %s\n", strerror (errno));close (sockfd);return -1;}close (sockfd);snprintf (id, max, "%02X%02X%02X%02X%02X%02X",req->ifr_hwaddr.sa_data[0] & 0xff,req->ifr_hwaddr.sa_data[1] & 0xff,req->ifr_hwaddr.sa_data[2] & 0xff,req->ifr_hwaddr.sa_data[3] & 0xff,req->ifr_hwaddr.sa_data[4] & 0xff,req->ifr_hwaddr.sa_data[5] & 0xff);fprintf (stdout, "MAC address of %s: [%s].\n", req->ifr_name, id); return 0;}。

合集下载

如何在Linux系统中查看网络接口的MAC地址

如何在Linux系统中查看网络接口的MAC地址

如何在Linux系统中查看网络接口的MAC地址MAC地址(Media Access Control Address)是网络设备的唯一标识符,它在数据链路层起到重要的作用。

在Linux系统中,我们可以通过一些命令来查看网络接口的MAC地址。

本文将介绍一些常用的方法来实现这个目标。

方法一:使用ifconfig命令ifconfig命令在Linux系统中用于配置和显示网络接口的状态。

它可以显示网络接口的IP地址、MAC地址等信息。

打开终端,输入以下命令:```ifconfig```然后按回车键执行命令,系统将显示所有网络接口的相关信息。

在每个网络接口的输出中,可以找到一行标有"HWaddr"的字段,它后面的就是该接口的MAC地址。

方法二:使用ip命令ip命令是Linux系统中用于配置和显示网络接口的新一代工具。

它比ifconfig命令更加强大且易用。

打开终端,输入以下命令:```ip link show```按回车键执行命令,将显示所有网络接口的信息。

在每个网络接口的输出中,可以找到一行标有"link/ether"的字段,它后面的就是该接口的MAC地址。

方法三:查看/sys/class/net目录Linux系统将网络接口的相关信息保存在/sys/class/net目录下。

打开终端,输入以下命令:```cd /sys/class/netls```按回车键执行命令,将列出所有网络接口的文件夹。

进入对应的网络接口文件夹,例如eth0,输入以下命令:```cd eth0cat address```按回车键执行命令,将显示该接口的MAC地址。

方法四:使用arp命令arp命令用于管理系统的ARP缓存,它可以显示网络接口的IP地址、MAC地址等信息。

打开终端,输入以下命令:```arp -a```按回车键执行命令,系统将显示ARP缓存中的所有条目。

在每个条目的输出中,可以找到一列标有"ether"的字段,它后面的就是对应接口的MAC地址。

查看Linux硬件信息命令的使用

查看Linux硬件信息命令的使用

查看Linux硬件信息命令的使用dmecode | -i 'serial number' 查看板卡信息 /proc/pci 2,、u信息通过/proc文件系统 1) cat /proc/cpuinfo 通过查看开机信息 2) d | grep -i 'cpu' 3)dmidecode -t processor 3、硬盘信息查看分区状况 -l 查看大小状况 -h 查看用法状况 -h | grep sda 4、内存信息 1) cat /proc/meminfo 2) dmesg | grep mem 3) -m4) vm 5) dmidecode | grep -i mem 5、网卡信息 1) dmesg| grep -i 'eth' 2) cat /etc/sysconfig/honf | grep -i eth 3) pci | grep -i 'eth' 6,、鼠标键盘和USB信息查看键盘和鼠标:cat /proc/bus/input/devices 查看USB设备:cat/proc/bus/usb/devices 查看各设备的中断哀求(IRQ):cat/proc/interrupts 7、显卡信息 1)lspci |grep -i 'VGA'2)dmesg | grep -i 'VGA' 8、声卡信息 1)lspci |grep -i 'VGA' 2)dmesg | grep -i 'VGA' 9、其他Linux硬件信息指令 .用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart) .dmesg (查看全部启动时检测到的硬件信息) .lspci (显示外设信息, 如usb,网卡等信息) .cat/etc/sysconfig/hwconf .mpstat 10、需要手动安装的工具lshw,hwinfo,hal-device-manager第1页共1页。

Linux终端硬件信息查看命令行获取系统硬件信息

Linux终端硬件信息查看命令行获取系统硬件信息

Linux终端硬件信息查看命令行获取系统硬件信息在Linux系统中,我们经常需要查看硬件信息以了解电脑的配置和性能。

本文将介绍一些常用的命令行工具,帮助您快速获取系统的硬件信息。

1. 查看CPU信息首先,让我们来查看CPU的相关信息。

在终端中执行以下命令:```$ cat /proc/cpuinfo```这个命令会显示出CPU的详细信息,包括型号、频率、核心数等。

2. 查看内存信息接下来,我们来获取系统内存的信息。

在终端中执行以下命令:```$ cat /proc/meminfo```这个命令会显示出内存的详细信息,包括总内存、可用内存、使用中的内存等。

3. 查看硬盘信息Linux系统中,我们可以使用`df`命令来查看硬盘的使用情况。

在终端中执行以下命令:```$ df -h```这个命令会列出系统中所有硬盘的使用情况,包括挂载点、文件系统类型、可用空间等。

4. 查看网络接口信息要查看网络接口的信息,可以使用`ifconfig`命令。

在终端中执行以下命令:```$ ifconfig```这个命令会显示出系统中所有的网络接口,包括IP地址、MAC地址等。

5. 查看显卡信息如果您想获取显卡的信息,可以使用`lspci`命令。

在终端中执行以下命令:```$ lspci -v | grep VGA```这个命令会显示出系统中的显卡信息,包括厂商、型号等。

6. 查看USB设备信息要查看已连接的USB设备信息,可以使用`lsusb`命令。

在终端中执行以下命令:```$ lsusb```这个命令会列出系统中所有的USB设备,包括厂商、型号等。

7. 查看BIOS信息最后,我们来获取系统的BIOS信息。

在终端中执行以下命令:```$ sudo dmidecode -t bios```这个命令会显示出系统的BIOS信息,包括厂商、版本等。

以上就是获取Linux系统硬件信息的常用命令行工具。

通过这些命令,您可以快速查看系统的配置和性能情况,帮助您更好地了解和管理自己的电脑。

在linux下获取硬盘序列号

在linux下获取硬盘序列号

在linux下获取硬盘序列号⽅法⼀:hwinfo --disk例⼦sda$ hwinfo --disk28: IDE 00.0: 10600 Disk[Created at block.245]Unique ID: 3OOL.XxO12I_gR04Parent ID: _+Pw.BwJ_Mdxf5A3SysFS ID: /class/block/sdaSysFS BusID: 0:0:0:0SysFS Device Link: /devices/pci0000:00/0000:00:0f.0/ata1/host0/target0:0:0/0:0:0:0Hardware Class: diskModel: "KINGSTON RBUSMS1"Vendor: "KINGSTON"Device: "RBUSMS1"Revision: "61D1"Driver: "ahci", "sd"Driver Modules: "ahci", "sd_mod"Device File: /dev/sdaDevice Files: /dev/sda, /dev/disk/by-id/ata-KINGSTON_RBUSMS180S364GJ_50026B72821EF73A, /dev/disk/by-path/pci-0000:00:0f.0-ata-1, /dev/disk/by-id/wwn-0x50026b72821ef73a Device Number: block 8:0-8:15BIOS id: 0x80Drive status: no mediumConfig Status: cfg=new, avail=yes, need=no, active=unknownAttached to: #14 (SATA controller)例⼦nvmegeneric@generic-PC:/$ hwinfo --disk14: PCI 00.0: 10600 Disk[Created at block.245]Unique ID: wLCS.FG_TsB9ija0Parent ID: B35A.iiLHwdxfB34SysFS ID: /class/block/nvme0n1SysFS BusID: nvme0SysFS Device Link: /devices/pci0000:00/0000:00:01.0/0000:02:00.0/nvme/nvme0Hardware Class: diskModel: "Disk"Vendor: pci 0x1df5Device: pci 0x1202SubVendor: pci 0x1df5SubDevice: pci 0x1202Driver: "nvme"Driver Modules: "nvme"Device File: /dev/nvme0n1Device Files: /dev/nvme0n1, /dev/disk/by-id/nvme-kimtigo_SSD_256GB_S780100G00110S, /dev/disk/by-path/pci-0000:02:00.0-nvme-1, /dev/disk/by-id/nvme-eui.0100000000000000 Device Number: block 259:0Drive status: no mediumConfig Status: cfg=new, avail=yes, need=no, active=unknownAttached to: #2 (Non-Volatile memory controller)⽅法⼆:cat /sys/class/block/sda/device/wwid或者cat/sys/class/block/nvme0n1/device/serialsda$ cat /sys/class/block/sda/device/wwidt10.ATA KINGSTON RBUSMS180S364GJ 50026B72821EF73Anvmecat /sys/class/block/nvme0n1/device/serialS780100G00110S⽅法三:udevadm info --query=all --name=/dev/xxx |grep -wID_SERIAL_SHORT$ udevadm info --query=all --name=/dev/sda |grep -w ID_SERIAL_SHORTE: ID_SERIAL_SHORT=50026B72821EF73A$ udevadm info --query=all --name=/dev/nvme0n1 |grep -w ID_SERIAL_SHORTE: ID_SERIAL_SHORT=S780100G00110S⽅法四:lsblk -n --nodeps -o name,serial /dev/xxx $ lsblk -n --nodeps -o name,serial /dev/sdasda 50026B72821EF73Alsblk -n --nodeps -o name,serial /dev/nvme0n1nvme0n1 S780100G00110S。

Linux终端中的硬件信息查看命令

Linux终端中的硬件信息查看命令

Linux终端中的硬件信息查看命令Linux操作系统提供了多种命令用于查看系统的硬件信息。

通过这些命令,我们可以获取关于计算机硬件组件的详细信息,如CPU、内存、硬盘、网络设备等。

本文将介绍几个常用的Linux终端中的硬件信息查看命令。

1. lspci命令lspci命令用于显示计算机的PCI总线信息,可以查看计算机的各种硬件设备的详细信息。

在终端中输入以下命令即可查看:```lspci```该命令输出的信息包括设备的厂商、型号、驱动程序等。

通过这些信息,我们可以了解计算机的PCI设备情况。

2. lsusb命令lsusb命令用于显示连接到USB总线的设备信息。

在终端中输入以下命令即可查看:```lsusb```该命令输出的信息包括设备的厂商、型号等。

通过这些信息,我们可以了解计算机的USB设备情况。

3. lshw命令lshw命令是一个强大的硬件信息查看工具,可以查看计算机所有硬件的详细信息。

在终端中输入以下命令即可查看:```sudo lshw```该命令输出的信息非常详细,包括CPU、内存、硬盘、网卡等各个硬件设备的详细信息。

通过这些信息,我们可以了解计算机的硬件配置情况。

4. free命令free命令用于显示系统内存的使用情况。

在终端中输入以下命令即可查看:```free -h```该命令输出的信息包括总内存、已使用内存、可用内存等。

通过这些信息,我们可以了解计算机的内存使用情况。

5. df命令df命令用于显示文件系统的磁盘空间使用情况。

在终端中输入以下命令即可查看:```df -h```该命令输出的信息包括文件系统、总容量、已使用容量、可用容量等。

通过这些信息,我们可以了解计算机硬盘的使用情况。

总结通过以上几个命令,我们可以轻松地查看Linux终端中的硬件信息。

这些命令不仅方便了我们了解计算机的硬件配置,还可以帮助我们进行故障排查和性能优化。

在进行系统维护和故障处理时,掌握这些命令将会非常有用。

Linux命令行中的硬件信息查看和驱动管理

Linux命令行中的硬件信息查看和驱动管理

Linux命令行中的硬件信息查看和驱动管理在Linux命令行中,我们可以通过一些命令来查看硬件信息和管理驱动,这对于系统维护和故障排除非常重要。

本文将介绍几个常用的命令及其用法,帮助您快速获取硬件信息和管理驱动。

1. 查看硬件信息1.1 lshw命令lshw(或者lswhw)是一个用于查看硬件信息的命令,可以列出系统中所有硬件的详细信息,包括处理器、内存、硬盘、网卡等。

使用示例:```$ sudo lshw```运行以上命令后,您将看到完整的硬件信息列表,可以通过滚动查看或者使用管道和grep命令过滤感兴趣的部分。

1.2 lspci命令lspci命令用于列出系统中所有PCI设备的信息,包括显卡、网卡、声卡等。

使用示例:```$ lspci```该命令会输出PCI设备的详细信息,可以通过管道和grep进行过滤。

1.3 lsusb命令lsusb命令用于列出系统中所有USB设备的信息。

使用示例:```$ lsusb```该命令会输出USB设备的详细信息,可以通过管道和grep进行过滤。

2. 管理驱动2.1 modprobe命令modprobe命令用于加载和卸载Linux内核模块,包括驱动程序。

使用示例:```$ sudo modprobe <module_name> // 加载模块$ sudo modprobe -r <module_name> // 卸载模块```其中,`<module_name>`为要加载或卸载的模块名称。

2.2 lsmod命令lsmod命令用于列出当前已加载的内核模块。

使用示例:```$ lsmod```该命令会输出已加载模块的列表,包括模块名称、使用次数等信息。

2.3 rmmod命令rmmod命令用于卸载已加载的内核模块。

使用示例:```$ sudo rmmod <module_name>```其中,`<module_name>`为要卸载的模块名称。

linux查看主板型号、CPU、显卡、硬盘等信息

linux查看主板型号、CPU、显卡、硬盘等信息系统uname -a # 查看内核/操作系统/CPU信息head -n 1 /etc/issue # 查看操作系统版本cat /proc/cpuinfo # 查看CPU信息hostname # 查看计算机名lspci -tv # 列出所有PCI设备lsusb -tv # 列出所有USB设备lsmod # 列出加载的内核模块env # 查看环境变量资源free -m # 查看内存使⽤量和交换区使⽤量df -h # 查看各分区使⽤情况du -sh <⽬录名> # 查看指定⽬录的⼤⼩grep MemTotal /proc/meminfo # 查看内存总量grep MemFree /proc/meminfo # 查看空闲内存量uptime # 查看系统运⾏时间、⽤户数、负载cat /proc/loadavg # 查看系统负载磁盘和分区mount | column -t # 查看挂接的分区状态fdisk -l # 查看所有分区swapon -s # 查看所有交换分区hdparm -i /dev/hda # 查看磁盘参数(仅适⽤于IDE设备)dmesg | grep IDE # 查看启动时IDE设备检测状况⽹络ifconfig # 查看所有⽹络接⼝的属性iptables -L # 查看防⽕墙设置route -n # 查看路由表netstat -lntp # 查看所有监听端⼝netstat -antp # 查看所有已经建⽴的连接netstat -s # 查看⽹络统计信息进程ps -ef # 查看所有进程top # 实时显⽰进程状态⽤户w # 查看活动⽤户id <⽤户名> # 查看指定⽤户信息last # 查看⽤户登录⽇志cut -d: -f1 /etc/passwd # 查看系统所有⽤户cut -d: -f1 /etc/group # 查看系统所有组crontab -l # 查看当前⽤户的计划任务服务chkconfig --list # 列出所有系统服务chkconfig --list | grep on # 列出所有启动的系统服务程序rpm -qa # 查看所有安装的软件包查看⽹卡型号lspci | grep Ethernet00:19.0 Ethernet controller: Intel Corporation 82567V-2 Gigabit Network Connection查看硬盘信息(查看硬盘型号和硬盘序列号):df -hFilesystem Size Used Avail Use% Mounted on/dev/sda5 2.0G 272M 1.6G 15% //dev/sda8 199G 188M 189G 1% /home/dev/sda3 9.7G 1.3G 7.9G 15% /usr/dev/sda2 9.7G 198M 9.0G 3% /var/dev/sda1 99M 17M 77M 18% /boot/dev/sda:Model=SAMSUNG HE253GJ , FwRev=1AJ30001, SerialNo= S2B5J90ZC12060Config={ Fixed }RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=?16?CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}PIO modes: pio0 pio1 pio2 pio3 pio4DMA modes: mdma0 mdma1 mdma2UDMA modes: udma0 udma1 udma2AdvancedPM=yes: disabled (255) WriteCache=enabledDrive conforms to: unknown: ATA/ATAPI-0 ATA/ATAPI-1 ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6 ATA/ATAPI-7 * signifies the current active modedmesg | grep ATAata1: SATA max UDMA/133 cmd 0xf190 ctl 0xf180 bmdma 0xf150 irq 185ata2: SATA max UDMA/133 cmd 0xf170 ctl 0xf160 bmdma 0xf158 irq 185ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)ata1.00: ATA-8: SAMSUNG HE253GJ, 1AJ30001, max UDMA/133ata2: SATA link down (SStatus 0 SControl 300)Vendor: ATA Model: SAMSUNG HE253GJ Rev: 1AJ3ata3: SATA max UDMA/133 cmd 0xf130 ctl 0xf120 bmdma 0xf0f0 irq 185ata4: SATA max UDMA/133 cmd 0xf110 ctl 0xf100 bmdma 0xf0f8 irq 185ata3: SATA link down (SStatus 0 SControl 300)ata4: SATA link down (SStatus 0 SControl 300)ata5: PATA max UDMA/100 cmd 0xe040 ctl 0xe030 bmdma 0xe000 irq 177查看主板型号:dmidecode | more# dmidecode 2.10SMBIOS 2.4 present.57 structures occupying 2318 bytes.Table at 0x000E84B0.Handle 0x0000, DMI type 0, 24 bytesBIOS InformationVendor: Intel Corp.Version: GTG4310H.86A.0019.2009.0625.1334Release Date: 06/25/2009.....System Information 服务器品牌Manufacturer:Product Name: (没有信息表⽰⾮品牌或未识别)Version:Serial Number:UUID: 889BD67E-8D96-11DE-AC40-0013D4D9C9E8Wake-up Type: Power SwitchSKU Number: Not SpecifiedFamily: Not SpecifiedHandle 0x0002, DMI type 2, 15 bytesBase Board Information 主板型号/主板信息Manufacturer: Intel CorporationProduct Name: DG43GTVersion: AAE62768-300Serial Number: BTGT9340022NProcessor Information CPU信息/CPU型号/CPU主频Socket Designation: PROCESSORType: Central ProcessorFamily: Pentium DManufacturer: Intel(R) Corp.ID: 7A 06 01 00 FF FB EB BFSignature: Type 0, Family 6, Model 23, Stepping 10Version: Pentium(R) Dual-Core CPU E6500 @ 2.93GHzVoltage: 1.2 VExternal Clock: 266 MHzMax Speed: 4000 MHzCurrent Speed: 2931 MHzStatus: Populated, EnabledUpgrade: Socket LGA775Cache Information 硬件和CPU缓存情况Socket Designation: L1-CacheConfiguration: Enabled, Not Socketed, Level 1Operational Mode: Write BackInstalled Size: 32 kBMaximum Size: 32 kBBIOS Language Information BIOS语⾔Installable Languages: 1en|US|iso8859-1Currently Installed Language: en|US|iso8859-1 Physical Memory Array 主板最⼤⽀持内存Location: System Board Or MotherboardUse: System MemoryError Correction Type: NoneMaximum Capacity: 16 GBError Information Handle: Not ProvidedNumber Of Devices: 4Handle 0x002C, DMI type 19, 15 bytesMemory Array Mapped Address ⽬前的内存Starting Address: 0x00000000000Ending Address: 0x000FFFFFFFFRange Size: 4 GBPhysical Array Handle: 0x002BPartition Width: 0On Board Device Information 显卡型号Type: VideoStatus: EnabledDescription: Intelr GMA X4500 Video Device。

计算机编号、硬盘序列号和Mac地址查询方法

计算机编号、硬盘序列号和Mac地址查询⽅法(1)计算机编号:SN也就是Serial Number的缩写,中⽂也就是产品序列号,⽽电脑的后⾯⼀般也有⼀个这样的SN序列号,那么怎么查看电脑的S/N序列号呢?⽅法⼀:将笔记本电脑翻过来,然后在它的后⾯就可以看到⼀个S/N的序列号了⽅法⼆:按下键盘的 win+R 组合快捷键或者是点击桌⾯左下⾓的开始菜单,在打开的页⾯中点击运⾏选项。

然后在打开的运⾏窗⼝的输⼊框中输⼊ cmd 回车。

然后在打开的命令⾏窗⼝中输⼊ wmic/? 回车,这样就可以查看此命令的帮助信息了。

先按下Esc停⽌它,然后输⼊ wmic bios get serialnumber 回车。

回车之后,在弹出的信息中就可以看到 S/N 序列号了。

(2)硬盘序列号:⾸先点击电脑左下⾓“开始”,在搜索中输⼊“cmd”点击打开命令窗⼝;在命令⾏输⼊“diskpart”按回车键启动这个程序;接着输⼊“list disk”按回车键把电脑上的所有磁盘都罗列出来;接着输⼊“select disk 0”按回车键,选好要查看的磁盘后接着输⼊“detail disk”,再按回车键,硬盘的信息将会展现出来;其中磁盘ID就是要查看的硬盘序列号;(3)Mac地址查询:⽅法⼀:打开控制⾯板中的【⽹络和共享中⼼】;右击【本地连接】在弹出菜单中选择【状态】;在弹出的窗⼝中打开【详细信息】按钮;属性窗⼝中的物理地址就是我们的MAC地址了。

⽅法⼆:还可以通过命令的⽅式快速获得mac地址,打开运⾏窗⼝。

输⼊cmd;打开命令窗⼝,输⼊:getmac;回车后,就会显⽰出以下信息,物理地址就是MAC地址了。

在Linux终端中查看系统的硬件信息

在Linux终端中查看系统的硬件信息Linux是一种广泛使用的操作系统,具有可自定义性强和高度安全性的特点。

对于系统管理员和开发人员而言,了解系统的硬件信息对于调试和优化系统至关重要。

本文将介绍如何在Linux终端中查看系统的硬件信息。

1. CPU信息要查看CPU的信息,可以使用以下命令:```shellcat /proc/cpuinfo```这个命令将显示与CPU相关的详细信息,包括CPU型号、频率、缓存大小等。

2. 内存信息要查看系统的内存信息,可以使用以下命令:```shellcat /proc/meminfo```这个命令将显示与内存相关的详细信息,包括总内存量、可用内存量、缓存大小等。

3. 磁盘信息要查看系统的磁盘信息,可以使用以下命令:```shelldf -h```该命令将显示磁盘分区的空间使用情况,包括文件系统类型、容量、已用空间和可用空间等。

4. 网络信息要查看系统的网络接口信息,可以使用以下命令:```shellifconfig -a```这个命令将显示网络接口的详细信息,包括接口名称、IP地址、MAC地址等。

5. 显卡信息要查看系统的显卡信息,可以使用以下命令:```shelllspci | grep VGA```这个命令将显示系统中所安装的显卡信息,包括显卡型号、厂商等。

6. 声卡信息要查看系统的声卡信息,可以使用以下命令:```shelllspci | grep Audio```这个命令将显示系统中所安装的声卡信息,包括声卡型号、厂商等。

7. USB设备信息要查看系统的USB设备信息,可以使用以下命令:```shelllsusb```这个命令将显示与USB相关的设备信息,包括设备名称、厂商、设备编号等。

总结:在Linux终端中查看系统的硬件信息是一项重要的任务,对于系统管理员和开发人员来说至关重要。

通过上述介绍的命令,您可以轻松地获取关于CPU、内存、磁盘、网络接口、显卡、声卡以及USB设备等方面的详细信息。

Linux下获取CPUID、硬盘序列号与 MAC地址

getmacaddr (const char *ip, char *id, size_t max)
{
int i, sockfd;
struct sockaddr_in *loc;
struct ifreq req[1];
sockfd = socket (AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0)
struct if_settings ifru_settings;
} ifr_ifru;
}
,其中,ifrn_name为网络接口的名称,ifr_ifru.ifru_hwaddr为网络接口的MAC地址。
#ifndef MAX_IFINDEX
# define MAX_IFINDEX 8
#endif
static int
short ifru_flags;
int ifru_ivalue;
int ifru_mtu;
struct ifmap ifru_map;
char ifru_slave[IFNAMSIZ]; /* Just fits the size */
char ifru_newname[IFNAMSIZ];
void * ifru_data;
snprintf (id, max, "%08lx %08lx %08lx %08lx", eax, ebx, ecx, edx);
fprintf (stdout, "get cpu id: %s\n", id);
return 0;
}
这个的实现,采用的是读取/etc/mtab文件,找到/(即根目录)挂载的设备文件,然后打开它,再用系统调用ioctl来实现的。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档