Bu Python kodu, işletim sistemi, işlemci, bellek, disk, anakart ve ağ bileşenleri hakkında ayrıntılı sistem bilgilerini toplamak ve görüntülemek için kullanılır. Python’un platform
, psutil
, socket
ve wmi
modüllerini kullanarak, donanım ve yazılım detaylarına erişir.
Kodun Bölümleri ve Çalışma Prensibi
-
İşletim Sistemi Bilgileri:
get_os_info
fonksiyonu,platform
modülünü kullanarak işletim sisteminin adı, sürüm numarası, mimarisi, işlemci türü ve Python sürümü gibi bilgileri toplar. Bu veriler sistemin temel özelliklerini analiz etmek için kullanışlıdır. -
CPU Bilgileri:
get_cpu_info
fonksiyonu, CPU çekirdek sayısı, mantıksal çekirdek sayısı ve CPU’nun mevcut yük durumu gibi verileri sağlar. Bu veriler,psutil
modülü aracılığıyla elde edilir. CPU frekansı (MHz) de bu modülden alınarak CPU performansı ve yük durumu izlenebilir. -
Bellek Bilgileri:
get_memory_info
fonksiyonu, sistemdeki toplam bellek, kullanılan ve boş bellek miktarı ile bellek kullanım yüzdesini ölçer. Bu fonksiyon, sistem belleğinin ne kadar etkin kullanıldığını analiz etmek için kullanışlıdır vepsutil
modülüyle çalışır. -
Disk Bilgileri:
get_disk_info
fonksiyonu, her bir disk bölüntüsü için toplam alan, kullanılan alan, boş alan ve kullanım yüzdesini gösterir. Bu bilgilerpsutil.disk_partitions()
vepsutil.disk_usage()
fonksiyonları kullanılarak elde edilir ve sistem depolama durumunun izlenmesi açısından önemlidir. -
Anakart Bilgileri:
get_motherboard_info
fonksiyonu, Windows sistemlerindewmi
modülü aracılığıyla anakartın üreticisini, modelini ve seri numarasını alır. Bu bilgiler, sistem donanım özelliklerini belirlemek için kullanılır. -
Ağ Bilgileri:
get_network_info
fonksiyonu, ağ arayüzlerinin IP adresi, netmask ve yayın adresi gibi bilgilerini toplar. Bu bilgiler,socket
vepsutil.net_if_addrs()
fonksiyonları ile elde edilerek ağ durumu hakkında genel bir bilgi sağlar.
Kodun Kullanımı ve Uygulaması
Kodun sonundaki display_system_info
fonksiyonu, tüm alt fonksiyonları çağırarak elde edilen bilgileri kullanıcıya düzenli bir şekilde gösterir. Çalıştırıldığında, kullanıcıya işletim sistemi bilgileriyle başlayan, CPU, bellek, disk, anakart ve ağ bilgileriyle devam eden ayrıntılı bir bilgi akışı sunar. Bu kod, sistem yönetimi, donanım denetimi ve performans analizi yapmak isteyen kullanıcılar için faydalıdır ve hem kişisel hem de ticari kullanımlar için kolayca genişletilebilir.
Copied!import platform import psutil import socket import wmi # İşletim Sistemi Bilgileri def get_os_info(): os_info = { "Sistem": platform.system(), "Platform Versiyonu": platform.version(), "Mimari": platform.architecture(), "İşlemci": platform.processor(), "Python Versiyonu": platform.python_version(), "Makine": platform.machine(), "Platform Adı": platform.node(), "Sürüm": platform.release(), } return os_info # CPU Bilgileri def get_cpu_info(): cpu_info = { "Fiziksel Çekirdek Sayısı": psutil.cpu_count(logical=False), "Mantıksal Çekirdek Sayısı": psutil.cpu_count(logical=True), "CPU Yüzdesi": psutil.cpu_percent(interval=1), "Frekans (MHz)": psutil.cpu_freq().current if psutil.cpu_freq() else None, } return cpu_info # Bellek Bilgileri def get_memory_info(): mem = psutil.virtual_memory() memory_info = { "Toplam Bellek (GB)": mem.total / (1024 ** 3), "Kullanılan Bellek (GB)": mem.used / (1024 ** 3), "Boş Bellek (GB)": mem.available / (1024 ** 3), "Bellek Kullanım Yüzdesi": mem.percent, } return memory_info # Disk Bilgileri def get_disk_info(): partitions = psutil.disk_partitions() disk_info = Array for partition in partitions: usage = psutil.disk_usage(partition.mountpoint) disk_info[partition.device] = { "Bağlama Noktası": partition.mountpoint, "Dosya Sistemi Türü": partition.fstype, "Toplam Alan (GB)": usage.total / (1024 ** 3), "Kullanılan Alan (GB)": usage.used / (1024 ** 3), "Boş Alan (GB)": usage.free / (1024 ** 3), "Kullanım Yüzdesi": usage.percent, } return disk_info # Anakart Bilgileri def get_motherboard_info(): c = wmi.WMI() motherboard_info = Array for board in c.Win32_BaseBoard(): motherboard_info = { "Üretici": board.Manufacturer, "Model": board.Product, "Seri Numarası": board.SerialNumber, } return motherboard_info # Ağ Bilgileri def get_network_info(): hostname = socket.gethostname() ip_address = socket.gethostbyname(hostname) net_info = { "Ana Makine Adı": hostname, "IP Adresi": ip_address, } interfaces = psutil.net_if_addrs() for interface, addrs in interfaces.items(): for addr in addrs: if addr.family == socket.AF_INET: # IPv4 net_info[interface] = { "IP Adresi": addr.address, "Netmask": addr.netmask, "Broadcast": addr.broadcast, } return net_info # Tüm Bilgileri Göster def display_system_info(): print("=== İşletim Sistemi Bilgileri ===") for key, value in get_os_info().items(): print(f"{key}: {value}") print("\n=== CPU Bilgileri ===") for key, value in get_cpu_info().items(): print(f"{key}: {value}") print("\n=== Bellek Bilgileri ===") for key, value in get_memory_info().items(): print(f"{key}: {value:.2f}") print("\n=== Disk Bilgileri ===") for device, info in get_disk_info().items(): print(f"Cihaz: {device}") for key, value in info.items(): print(f" {key}: {value:.2f}" if isinstance(value, float) else f" {key}: {value}") print("\n=== Anakart Bilgileri ===") for key, value in get_motherboard_info().items(): print(f"{key}: {value}") print("\n=== Ağ Bilgileri ===") for key, value in get_network_info().items(): if isinstance(value, dict): print(f"Ağ Arayüzü: {key}") for k, v in value.items(): print(f" {k}: {v}") else: print(f"{key}: {value}") # Sistemi Çalıştır if __name__ == "__main__": display_system_info()
Bir yanıt yazın