Pengaturcaraan

Mengekstrak Maklumat Sistem dan Perkakasan Linux Menggunakan Python

Mengekstrak Maklumat Sistem dan Perkakasan Linux Menggunakan Python

Mencari maklumat perkakasan dan sistem di Linux adalah tugas yang berguna dan menarik. Kami dapat mengekstrak perincian Sistem Operasi, perincian pengguna, perincian memori, perincian CPU, dan banyak lagi menggunakan kod python sederhana di Linux. Walaupun kita dapat melakukan banyak perkara menggunakan skrip terminal dan bash, python jauh lebih menarik.

Sebagai pencinta python, kami ingin setiap tugas dilakukan dengan menggunakan bahasa itu, jadi mengekstrak maklumat sistem dan perkakasan dengan python adalah tugas yang bagus. Kita juga dapat belajar Linux dan python secara serentak. Artikel ini akan panjang, jadi luangkan masa anda untuk membaca keseluruhan artikel dan jalankan setiap kod untuk pemahaman yang lebih baik.

Anda boleh menyalin setiap kod dalam python IDE dan menjalankannya. Sekiranya anda tidak mempunyai IDE python atau ingin membandingkan antara IDE, lihat panduan kami mengenai 10 IDE teratas untuk Linux. By the way, saya menggunakan Kod VS sebagai IDE untuk menulis kod. Ia adalah sumber terbuka dan mudah digunakan. Sekiranya anda ingin menggunakan Visual Studio Code, lihat panduan kami untuk memasang kod VS di Linux.

Mengekstrak Maklumat Sistem menggunakan Python

Dalam artikel ini, kami akan mengembangkan program yang akan mengekstrak perincian berikut:

Untuk mendapatkan butiran ini, kami akan menggunakan modul yang terdapat di perpustakaan standard Python. Beberapa modul yang akan kami gunakan adalah OS, platform, dll. Saya juga telah meletakkan kod sumber di Github; anda dapat melihat demo program dengan memuat turun dari repositori Github saya dan menjalankannya.

Untuk mengikuti tutorial ini, disarankan untuk memasang versi python terbaru di sistem anda. Anda boleh mengikuti panduan kami memasang python di Linux.

Keperluan

Sebilangan besar perpustakaan yang kami gunakan dalam tutorial ini terdapat di pustaka standard python. Kami hanya perlu memasang pakej psutil. Anda boleh menyemaknya dengan mengimportnya. Sekiranya psutil tidak dipasang, anda boleh memasangnya dengan mudah menggunakan alat pip. Untuk memasang pip di sistem kami, kami perlu menjalankan perintah berikut di terminal.

pip pasang psutil

Mendapatkan Perincian Sistem Asas

Sekarang setelah anda memasang psutil mari kita lihat cara menggunakannya untuk mengumpulkan OS menggunakan python. Kami menggunakan pelantar modul hadir di pustaka python standard untuk mengumpulkan maklumat sistem asas ini. Anda perlu menyalin kod berikut di python IDE kegemaran anda dan menjalankannya.

# mengimport modul yang diperlukan mengimport platform # mencetak Arsitektur cetakan OS ("[+] Architecture:", platform.arsitektur () [0]) # Memaparkan cetakan mesin ("[+] Mesin:", platform.mesin ()) # mencetak cetakan maklumat pelepasan Sistem Operasi ("[+] Pelepasan Sistem Operasi:", platform.lepaskan ()) # mencetak cetakan nama sistem yang sedang digunakan ("[+] Nama Sistem:", platform.system ()) # Baris ini akan mencetak versi cetakan Sistem Operasi anda ("[+] Versi Sistem Operasi:", platform.version ()) # Ini akan mencetak Node atau nama host cetakan Sistem Operasi anda ("[+] Node:" + platform.node ()) # Ini akan mencetak cetakan platform sistem anda ("[+] Platform:", platform.platform ()) # Ini akan mencetak cetakan maklumat pemproses ("[+] Processor:", platform.pemproses ())

Dalam kod di atas, kami mula-mula mengimport modul platform yang terdapat di pustaka python standard. Setelah mengimport modul, kami menggunakan fungsi modul platform untuk mendapatkan maklumat yang diperlukan. Semasa menjalankan kod pada peranti saya, saya mendapat output berikut.

maklumat sistem asas menggunakan python

Seperti yang dapat kita lihat dalam output, program ini memaparkan banyak perincian penting mengenai sistem operasi seperti seni bina sistem, platform, dan banyak lagi.

Masa Penggunaan Sistem

Kita juga boleh mendapatkan masa boot sistem dan waktu operasi sistem di python. Kita perlu menggunakan psutil perpustakaan yang telah kita pasang lebih awal. Kita dapat memperoleh uptime sistem dengan membaca file uptime yang ada di direktori proc di Linux.

Sila salin kod berikut di python IDE kegemaran anda dan jalankan.

dari datetime import datetime import psutil # Menggunakan perpustakaan psutil untuk mendapatkan masa boot sistem boot_time = datetime.daritimestamp (psutil.boot_time ()) print ("[+] System Boot Time:", boot_time)

Kod ini akan mencetak masa boot, yang bermaksud masa ketika sistem dimulakan. Semasa menjalankan program di PC saya, saya mendapat output berikut.

masa boot sistem menggunakan python

Kita juga dapat melihat waktu operasi sistem, yang merupakan masa ketika sistem berjalan. Kita perlu membaca file uptime direktori proc, seperti yang ditunjukkan dalam kod di bawah.

# mendapatkan masa sistem dari fail uptime di direktori proc dengan terbuka ("/ proc / uptime", "r") sebagai f: uptime = f.baca ().berpecah ("") [0].strip () uptime = int (float (uptime)) uptime_hours = uptime // 3600 uptime_minutes = (uptime% 3600) // 60 print ("[+] System Uptime:" + str (uptime_hours) + ":" + str ( uptime_minutes) + "jam")

Saya mendapat output berikut semasa menjalankan kod.

masa operasi sistem menggunakan python

Proses

Kita juga dapat menggunakan python untuk mendapatkan senarai proses yang sedang berjalan, jumlah proses tidak ada. Kita perlu menjalankan kod berikut.

import pids os = [] untuk subdir dalam os.listdir ('/ proc'): jika subdir.isdigit (): pids.tambahkan (subdir) cetak ('Jumlah proses: 0'.format (len (pid)))

Semasa menjalankan kod, saya mendapat output, seperti yang ditunjukkan pada gambar di bawah.

jumlah proses

Maklumat Pengguna

Kami juga boleh mendapatkan senarai semua pengguna yang hadir di peranti Linux kami menggunakan perpustakaan pwd yang terdapat di pustaka python standard. Untuk melakukan ini, anda perlu menyalin kod berikut dalam python IDE anda dan menjalankannya.

import pengguna pwd = pwd.getpwall () untuk pengguna dalam pengguna: cetak (pengguna.pw_name, pengguna.pw_shell)

Semasa menjalankan kod di atas, anda akan mendapat semua pengguna yang hadir di peranti anda dan cengkerang mereka.

Maklumat CPU

Kami telah mengumpulkan Perincian Sistem sekarang untuk mengumpulkan beberapa maklumat mengenai CPU yang digunakan oleh mesin kami. Kami dapat mengumpulkan maklumat CPU dari mesin Linux kami dengan dua cara. Cara pertama dan termudah adalah dengan menggunakan psutil modul dan cara kedua adalah dengan membaca fail / proc / cpuinfo.

Mari kita lihat bagaimana kita dapat menggunakan perpustakaan psutil untuk mendapatkan maklumat CPU. Anda perlu menyalin kod berikut ke dalam python IDE kegemaran anda dan menjalankannya.

# mengimport pakej yang diperlukan mengimport psutil # Kod ini akan mencetak bilangan inti CPU yang ada ("[+] Bilangan teras fizikal:", psutil.cpu_count (logical = False)) print ("[+] Bilangan Jumlah teras:", psutil.cpu_count (logik = Benar)) cetak ("\ n") # Ini akan mencetak frekuensi CPU maksimum, minimum dan semasa cpu_frequency = psutil.cpu_freq () cetak (f "[+] Frekuensi Maks: cpu_frequency.maks:.Cetakan 2f Mhz ") (f" [+] Kekerapan Min: cpu_frequency.min:.Cetakan 2f Mhz ") (f" [+] Frekuensi Semasa: cpu_frequency.semasa:.2f Mhz ") cetak (" \ n ") # Ini akan mencetak penggunaan CPU per teras untuk i, peratusan dalam jumlah (psutil.cpu_percent (percpu = True, interval = 1)): print (f "[+] CPU Penggunaan Teras i: peratus%") cetak (f "[+] Jumlah Penggunaan CPU: psutil.cpu_percent ()% ")

Mari kita lihat apa yang berlaku dalam program di atas. Pada baris pertama, kami mengimport psutil modul, yang akan membantu mengumpulkan butiran CPU. Pada baris kedua dan ketiga, kami menggunakan cpu_count () fungsi psutil modul untuk mengira bilangan teras CPU. Kemudian kami menggunakan fungsi cpu_freq () untuk mendapatkan frekuensi maksimum, min, dan semasa. Akhirnya, kami menggunakan fungsi cpu_percent untuk psutil untuk mencari penggunaan CPU. Semasa menjalankan kod di mesin saya, saya mendapat output berikut.

Maklumat CPU menggunakan psutil

Seperti yang dapat kita lihat di output bahawa semua perincian CPU telah dikeluarkan oleh program di terminal. Kita juga bisa mendapatkan nama CPU dengan membaca file / proc / cpuinfo menggunakan python. Untuk melakukan ini, kita perlu menjalankan kod berikut.

# membaca fail cpuinfo untuk mencetak nama # CPU yang ada dengan terbuka ("/ proc / cpuinfo", "r") sebagai f: file_info = f.readlines () cpuinfo = [x.jalur ().split (":") [1] untuk x dalam file_info jika "nama model" dalam x] untuk indeks, item dalam enumerate (cpuinfo): print ("[+] Processor" + str (index) + ":" + item )

Kami juga dapat mengumpulkan informasi CPU lain menggunakan file / proc / cpuinfo. Saya hanya membaca nama model CPU, tetapi anda dapat membuka fail dan melihat maklumat lain yang ada di dalam fail dan dapat menggunakannya dalam program. Inilah keluarannya.

Maklumat CPU menggunakan fail cpuinfo

Mari kumpulkan beberapa maklumat mengenai memori menggunakan python.

Maklumat Ingatan

Seperti maklumat CPU, kita juga dapat memperoleh maklumat memori dari dua tempat. Salah satunya menggunakan alat psutil, dan yang kedua adalah dengan membaca file proc / meminfo. Sebagai permulaan, mari kita mulai mengumpulkan maklumat memori menggunakan perpustakaan psutil. Sila salin kod berikut ke python IDE kegemaran anda dan jalankan.

# mengimport modul yang diperlukan mengimport psutil # menulis fungsi untuk menukar bait ke GigaByte def bytes_to_GB (bytes): gb = bytes / (1024 * 1024 * 1024) gb = round (gb, 2) return gb # Menggunakan fungsi virtual_memory () ia akan mengembalikan tuple virtual_memory = psutil.virtual_memory () #Ini akan mencetak cetakan perincian memori utama ("[+] Jumlah Memori yang ada:", bytes_to_GB (virtual_memory.total), "Gb") cetakan ("[+] Jumlah Memori Yang Ada:", bytes_to_GB (virtual_memory.tersedia), "Gb") cetak ("[+] Jumlah Memori Digunakan:", bytes_to_GB (virtual_memory.terpakai), "Gb") cetak ("[+] Peratus Digunakan:", virtual_memory.peratusan, "%") cetak ("\ n") # Ini akan mencetak butiran memori pertukaran jika ada pertukaran = psutil.swap_memory () print (f "[+] Jumlah memori pertukaran: bytes_to_GB (pertukaran.jumlah) ") cetak (f" [+] Memori pertukaran percuma: bytes_to_GB (pertukaran.percuma) ") cetak (f" [+] Memori pertukaran terpakai: bytes_to_GB (pertukaran.terpakai) ") cetak (f" [+] Peratusan Digunakan: pertukaran.peratus% ")

Mari kita lihat apa yang berlaku dalam kod di atas. Pada baris pertama, kami mengimport perpustakaan psutil, kemudian menggunakan fungsi virtual_memory (), yang mengembalikan tuple dengan maklumat memori maya. Kemudian kami menggunakan fungsi swap_memory () untuk mendapatkan maklumat memori swap. Kami juga membina nama fungsi bytes_to_GB (), yang akan menukar bait menjadi GigaBytes untuk pembacaan yang lebih baik. Saya mendapat output berikut.

maklumat ingatan menggunakan psutil

Kami juga dapat menggunakan file meminfo yang ada di direktori proc Linux untuk mengambil maklumat memori seperti jumlah memori, memori yang digunakan, dll. Untuk melakukan ini, jalankan kod berikut.

# Mengumpulkan maklumat memori dari cetakan fail meminfo ("\ nMembaca fail / proc / meminfo: \ n") dengan terbuka ("/ proc / meminfo", "r") sebagai f: lines = f.garis baca () cetak ("[+]" + baris [0].jalur ()) cetak ("[+]" + baris [1].jalur ())

Dan inilah outputnya:

maklumat memori menggunakan fail meminfo

Maklumat Cakera

Hingga kini, kami telah melihat beberapa perincian sistem asas, perincian CPU, perincian Memori. Sekarang mari kita lihat maklumat mengenai cakera yang ada di mesin kita. Untuk mengekstrak maklumat cakera, kami akan menggunakan modul psutil untuk mempermudah tugas kami, dan kami tidak perlu mencipta semula roda. Lihat kod di bawah untuk melihat contoh kod yang berfungsi. Anda boleh menyalin kod dan jalankan di IDE python kegemaran anda.

# mengimport modul yang diperlukan mengimport psutil # mengakses semua partisi cakera disk_partitions = psutil.disk_partitions () # menulis fungsi untuk menukar bait ke Giga bytes def bytes_to_GB (byte): gb = bytes / (1024 * 1024 * 1024) gb = bulat (gb, 2) mengembalikan gb # memaparkan partisi dan maklumat penggunaan untuk partisi di disk_partitions: print ("[+] Partition Device:", partition.peranti) cetak ("[+] Sistem Fail:", partition.fstype) print ("[+] Mountpoint:", partition.mountpoint) disk_usage = psutil.disk_usage (partition.mountpoint) cetak ("[+] Jumlah Ruang Cakera:", bytes_to_GB (disk_usage.jumlah), "GB") cetak ("[+] Ruang Cakera Percuma:", bytes_to_GB (disk_usage.percuma), "GB") cetak ("[+] Ruang Cakera Digunakan:", bytes_to_GB (disk_usage.terpakai), "GB") cetak ("[+] Peratusan Digunakan:", disk_usage.peratus, "%") # dapatkan statistik baca / tulis sejak boot disk_rw = psutil.disk_io_counters () print (f "[+] Jumlah Baca sejak boot: bytes_to_GB (disk_rw.read_bytes) GB ") cetak (f" [+] Jumlah but tulis tulis: bytes_to_GB (disk_rw.tulis_bytes) GB ")

Dalam kodnya, pertama-tama kita telah mengimport perpustakaan psutil, yang diperlukan untuk mengumpulkan maklumat cakera. Kemudian kami menggunakannya disk_partisi () berfungsi untuk mendapatkan senarai partisi cakera yang tersedia dengan maklumatnya. Kami juga menggunakan fungsi disk_usage () untuk mendapatkan penggunaan partisi ini. Akhirnya, kami menggunakan penghitung cakera_io_ () berfungsi untuk mendapatkan jumlah baca / tulis cakera sejak boot.  Berikut adalah output contoh.

maklumat cakera menggunakan python

Anda mungkin mendapat beberapa output lain bergantung pada cakera dan partisi anda.

Maklumat Rangkaian

Kami juga dapat mengumpulkan maklumat rangkaian sistem menggunakan perpustakaan psutil. Untuk melakukannya, salin kod berikut ke dalam python IDE anda dan jalankan.

# mengimport modul yang diperlukan mengimport psutil # menulis fungsi untuk menukar bait menjadi gigabyte def bytes_to_GB (bytes): gb = bytes / (1024 * 1024 * 1024) gb = bulat (gb, 2) mengembalikan gb # mengumpulkan semua antara muka rangkaian ( maya dan fizikal) dari sistem if_addrs = psutil.net_if_addrs () # mencetak maklumat setiap antara muka rangkaian untuk interface_name, interface_addes dalam if_addrs.item (): untuk alamat di interface_addresses: print ("\ n") print (f "Interface:", interface_name) if str (alamat.keluarga) == 'AlamatKeluarga.AF_INET ': cetak ("[+] Alamat IP:", alamat.alamat) cetak ("[+] Netmask:", alamat.netmask) cetak ("[+] IP Siaran:", alamat.siaran) elif str (alamat.keluarga) == 'AlamatKeluarga.AF_PACKET ': cetak ("[+] Alamat MAC:", alamat.alamat) cetak ("[+] Netmask:", alamat.netmask) cetak ("[+] Siaran MAC:", alamat.siaran) # mendapatkan statistik membaca / menulis rangkaian sejak boot print ("\ n") net_io = psutil.net_io_counters () cetak ("[+] Jumlah Byte Dihantar:", bytes_to_GB (net_io.bytes_sent)) cetak ("[+] Jumlah Byte Diterima:", bytes_to_GB (net_io.bytes_recv))

Berikut adalah contoh output dari PC ujian saya.

maklumat rangkaian menggunakan python

Maklumat Perkakasan Lain

Kita juga boleh menggunakan psutil perpustakaan untuk mendapatkan beberapa maklumat perkakasan lain seperti maklumat bateri, kelajuan putaran kipas, maklumat suhu pelbagai peranti, dan lain-lain. Mari kita lihat bagaimana kita dapat melakukan ini satu persatu.

Sekiranya anda menggunakan komputer riba, maka anda boleh menggunakan komputer riba psutil.sensor_bateri () berfungsi untuk mendapatkan maklumat bateri. Untuk melakukannya, salin dan jalankan kod berikut di Python IDE anda.

import bateri psutil = psutil.sensor_bateri () mencetak ("[+] Peratus Bateri:", bulat (bateri).peratus, 1), "%") mencetak ("[+] Masa bateri tersisa:", bulat (bateri.secsleft / 3600, 2), "hr") print ("[+] Power Plugged:", bateri.power_plugged)

Dalam kod di atas, kami menggunakan sensor_bateri () berfungsi untuk mendapatkan maklumat bateri, seperti peratusan bateri, masa yang tersisa, kuasa terpasang, atau tidak. Semasa menjalankan kod di mesin saya, saya mendapat output berikut.

maklumat bateri menggunakan python

Kita juga dapat menggunakan perpustakaan psutil untuk mendapatkan RPM kipas (Revolutions Per Minute) menggunakan fungsi sensor_fan () semasa kipas sedang berjalan. Psutil juga dapat digunakan untuk mendapatkan suhu berbagai alat. Kita boleh melakukannya dengan menggunakan fungsi sensor_temperatures () psutil. Saya membiarkan perkara ini dilakukan oleh anda untuk latihan.

Skrip Akhir

Sekarang mari kita menggabungkan semua kod dengan membina program akhir untuk mengumpulkan semua perincian sistem dan perkakasan yang telah kita bincangkan. Anda boleh menyalin program berikut dan menjalankannya di python IDE anda.

# mengimport modul yang diperlukan untuk mengimport platform dari datetime import datetime import psutil import os # Pertama Kami akan mencetak maklumat sistem asas # menggunakan cetakan modul platform ("\ n \ t \ t \ t Maklumat Sistem Asas \ n") cetak (" [+] Senibina: ", platform.seni bina () [0]) cetak ("[+] Mesin:", platform.mesin ()) cetak ("[+] Pelepasan Sistem Operasi:", platform.lepaskan ()) cetak ("[+] Nama Sistem:", platform.sistem ()) cetak ("[+] Versi Sistem Operasi:", platform.version ()) print ("[+] Node:" + platform.node ()) print ("[+] Platform:", platform.platform ()) cetak ("[+] Pemproses:", platform.pemproses ()) # Menggunakan perpustakaan psutil untuk mendapatkan masa boot sistem boot_time = datetime.daritimestamp (psutil.boot_time ()) print ("[+] System Boot Time:", boot_time) # mendapatkan sistem waktu dari fail uptime di direktori proc dengan terbuka ("/ proc / uptime", "r") sebagai f: uptime = f.baca ().berpecah ("") [0].strip () uptime = int (float (uptime)) uptime_hours = uptime // 3600 uptime_minutes = (uptime% 3600) // 60 print ("[+] System Uptime:" + str (uptime_hours) + ":" + str ( uptime_minutes) + "jam") # mendapatkan jumlah proses yang sedang dijalankan pids = [] untuk subdir di os.listdir ('/ proc'): jika subdir.isdigit (): pids.tambahkan (subdir) cetak ('Jumlah proses: 0'.format (len (pids))) # Menampilkan Cetakan maklumat CPU ("\ n \ t \ t \ t Maklumat CPU \ n") # Kod ini akan mencetak bilangan inti CPU yang ada ("[+] Bilangan Fizikal inti: ", psutil.cpu_count (logical = False)) print ("[+] Bilangan Jumlah teras:", psutil.cpu_count (logik = Benar)) cetak ("\ n") # Ini akan mencetak frekuensi CPU maksimum, minimum dan semasa cpu_frequency = psutil.cpu_freq () cetak (f "[+] Frekuensi Maks: cpu_frequency.maks:.Cetakan 2f Mhz ") (f" [+] Kekerapan Min: cpu_frequency.min:.Cetakan 2f Mhz ") (f" [+] Frekuensi Semasa: cpu_frequency.semasa:.2f Mhz ") cetak (" \ n ") # Ini akan mencetak penggunaan CPU per teras untuk i, peratusan dalam jumlah (psutil.cpu_percent (percpu = True, interval = 1)): print (f "[+] CPU Penggunaan Teras i: peratus%") cetak (f "[+] Jumlah Penggunaan CPU: psutil.cpu_percent ()% ") # membaca file cpuinfo untuk mencetak nama # CPU yang ada dengan terbuka (" / proc / cpuinfo "," r ") sebagai f: file_info = f.readlines () cpuinfo = [x.jalur ().split (":") [1] untuk x dalam file_info jika "nama model" dalam x] untuk indeks, item dalam enumerate (cpuinfo): print ("[+] Processor" + str (index) + ":" + item ) # menulis fungsi untuk menukar bait ke GigaByte def bytes_to_GB (bytes): gb = bytes / (1024 * 1024 * 1024) gb = bulat (gb, 2) kembali gb # Menggunakan fungsi virtual_memory () ia akan mengembalikan tupel virtual_memory = psutil.virtual_memory () print ("\ n \ t \ t \ t Memory Information \ n") #Ini akan mencetak butiran memori utama cetak ("[+] Total Memory present:", bytes_to_GB (virtual_memory.total), "Gb") cetakan ("[+] Jumlah Memori Yang Ada:", bytes_to_GB (virtual_memory.tersedia), "Gb") cetak ("[+] Jumlah Memori Digunakan:", bytes_to_GB (virtual_memory.terpakai), "Gb") cetak ("[+] Peratus Digunakan:", virtual_memory.peratusan, "%") cetak ("\ n") # Ini akan mencetak butiran memori pertukaran jika ada swap = psutil.swap_memory () print (f "[+] Jumlah memori pertukaran: bytes_to_GB (pertukaran.jumlah) ") cetak (f" [+] Memori pertukaran percuma: bytes_to_GB (pertukaran.percuma) ") cetak (f" [+] Memori pertukaran terpakai: bytes_to_GB (pertukaran.terpakai) ") cetak (f" [+] Peratusan Digunakan: pertukaran.persen% ") # Mengumpulkan maklumat memori dari cetakan fail meminfo (" \ nMembaca fail / proc / meminfo: \ n ") dengan terbuka (" / proc / meminfo "," r ") sebagai f: lines = f.garis baca () cetak ("[+]" + baris [0].jalur ()) cetak ("[+]" + baris [1].strip ()) # mengakses semua partisi disk disk_partitions = psutil.disk_partitions () print ("\ n \ t \ t \ t Maklumat Disk \ n") # memaparkan partisi dan maklumat penggunaan untuk partisi dalam disk_partitions: print ("[+] Partition Device:", partition.peranti) cetak ("[+] Sistem Fail:", partition.fstype) print ("[+] Mountpoint:", partition.mountpoint) disk_usage = psutil.disk_usage (partition.mountpoint) cetak ("[+] Jumlah Ruang Cakera:", bytes_to_GB (disk_usage.jumlah), "GB") cetak ("[+] Ruang Cakera Percuma:", bytes_to_GB (disk_usage.percuma), "GB") cetak ("[+] Ruang Cakera Digunakan:", bytes_to_GB (disk_usage.terpakai), "GB") cetak ("[+] Peratus Digunakan:", disk_usage.peratus, "%") # dapatkan statistik baca / tulis sejak boot disk_rw = psutil.disk_io_counters () print (f "[+] Jumlah Baca sejak boot: bytes_to_GB (disk_rw.read_bytes) GB ") cetak (f" [+] Jumlah but tulis tulis: bytes_to_GB (disk_rw.write_bytes) GB ") # mengumpulkan semua antara muka rangkaian (maya dan fizikal) dari sistem if_addrs = psutil.net_if_addrs () cetak ("\ n \ t \ t \ t Maklumat Rangkaian \ n") # mencetak maklumat antara muka rangkaian eah untuk interface_name, interface_addes di if_addrs.item (): untuk alamat di interface_addresses: print (f "Interface:", interface_name) if str (alamat.keluarga) == 'AlamatKeluarga.AF_INET ': cetak ("[+] Alamat IP:", alamat.alamat) cetak ("[+] Netmask:", alamat.netmask) cetak ("[+] IP Siaran:", alamat.siaran) elif str (alamat.keluarga) == 'AlamatKeluarga.AF_PACKET ': cetak ("[+] Alamat MAC:", alamat.alamat) cetak ("[+] Netmask:", alamat.netmask) cetak ("[+] Siarkan MAC:", alamat.siaran) # mendapatkan statistik membaca / menulis rangkaian sejak boot net_io = psutil.net_io_counters () cetak ("[+] Jumlah Byte Dihantar:", bytes_to_GB (net_io.bytes_sent)) cetak ("[+] Jumlah Byte Diterima:", bytes_to_GB (net_io.bytes_recv)) # Mendapatkan Bateri Maklumat bateri = psutil.sensor_bateri () cetak ("\ n \ t \ t \ t Maklumat Bateri \ n") cetak ("[+] Peratus Bateri:", bulat (bateri.peratus, 1), "%") mencetak ("[+] Masa bateri tersisa:", bulat (bateri.secsleft / 3600, 2), "hr") print ("[+] Power Plugged:", bateri.power_plugged)

Semasa menjalankan kod ini, kita akan mendapat output berikut.

alat untuk mengekstrak maklumat sistem dan perkakasan menggunakan python

Sekiranya anda ingin memperbaiki program atau ingin memuat turun kodnya, anda boleh melakukannya dari halaman Github saya.

Kesimpulannya

Ini adalah tutorial lengkap untuk mengumpulkan beberapa maklumat sistem dan perkakasan yang menarik menggunakan python. Sekiranya anda menghadapi masalah menyalin kod, anda juga boleh mendapatkan kod sumber penuh di repo Github saya. Anda mungkin juga ingin melihat panduan kami untuk bekerja dengan Sistem Operasi di python untuk beberapa tweak python yang lebih menarik.

HD Remastered Games untuk Linux yang Tidak Pernah Melancarkan Linux Sebelumnya
Banyak pembangun dan penerbit permainan hadir dengan penghapus HD permainan lama untuk memperpanjang usia francais, harap peminat meminta keserasian d...
Cara Menggunakan AutoKey untuk Mengautomasikan Permainan Linux
AutoKey adalah utiliti automasi desktop untuk Linux dan X11, yang diprogramkan dalam Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsi MACRO, ...
Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...