En iyi deneyimleri sunmak için, cihaz bilgilerini saklamak ve/veya bunlara erişmek amacıyla çerezler gibi teknolojiler kullanıyoruz. Bu teknolojilere izin vermek, bu sitedeki tarama davranışı veya benzersiz kimlikler gibi verileri işlememize izin verecektir. Onay vermemek veya onayı geri çekmek, belirli özellikleri ve işlevleri olumsuz etkileyebilir.
Fonksiyonel
Her zaman aktif
Teknik depolama veya erişim, abone veya kullanıcı tarafından açıkça talep edilen belirli bir hizmetin kullanılmasını sağlamak veya bir elektronik iletişim ağı üzerinden bir iletişimin iletimini gerçekleştirmek amacıyla meşru bir amaç için kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından talep edilmeyen tercihlerin saklanmasının meşru amacı için gereklidir.
İstatistik
Sadece istatistiksel amaçlar için kullanılan teknik depolama veya erişim.Sadece anonim istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Mahkeme celbi, İnternet Hizmet Sağlayıcınızın gönüllü uyumu veya üçüncü bir taraftan ek kayıtlar olmadan, yalnızca bu amaçla saklanan veya alınan bilgiler genellikle kimliğinizi belirlemek için kullanılamaz.
Pazarlama
Teknik depolama veya erişim, reklam göndermek için kullanıcı profilleri oluşturmak veya benzer pazarlama amaçları için kullanıcıyı bir web sitesinde veya birkaç web sitesinde izlemek için gereklidir.
Donanıma özel IP, MacID, İşlemci seri numarası gibi bilgileri kullanarak projelerinize yetkilendirmeler, lisans kontrolleri ekleyebilirsiniz.
Bilgisayarın donanım bilgilerini almanız gereken durumlarda kullanabileceğiniz kodları örnekleyeceğiz. Bu makalede işleyeceğimiz başlıklar şunlar olacak;
Network Kartı (IP, MacID)
CPU
HDD
Ram
Ekran kartı
Devamında ihtiyaç duyacağınız daha fazla detay için de gerekli kaynakları makalenin sonunda bulabilirsiniz.
Ayrıca projenin kaynak dosyalarını da yine makalenin sonunda bulabilir ve kod içerisindeki notları da inceleyerek kendi projelerinizde kullanabilirsiniz.
Önce aşağıdaki gibi bir form tasarımı yapalım;
Proje içerisinde de ayrı bir class oluşturup burada metodlarımızı oluşturacağız.
Öncelikle aşağıdaki namespace’ leri ekleyelim
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
using System;
using System.Management;
using System.Net;
using System.Net.NetworkInformation;
using System;
using System.Management;
using System.Net;
using System.Net.NetworkInformation;
using System;
using System.Management;
using System.Net;
using System.Net.NetworkInformation;
Mac ID Info
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
publicstaticstringmacIdInfo()
{
String macAdress = string.Empty;
string mac = null;
foreach(NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
OperationalStatus ot = nic.OperationalStatus;
if(nic.OperationalStatus == OperationalStatus.Up)
{
macAdress = nic.GetPhysicalAddress().ToString();
break;
}
}
for(int i = 0; i <= macAdress.Length - 1; i++)
{
mac = mac + ":" + macAdress.Substring(i, 2);
// mac adresini alırken parçalı aldığı için aralara : işareti ekliyoruz
i++;
}
// string' in en başına fazladan eklenen 0. indexteki karakter olan : işaretini siliyoruz.
mac = mac.Remove(0, 1);
return mac;
}
public static string macIdInfo()
{
String macAdress = string.Empty;
string mac = null;
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
OperationalStatus ot = nic.OperationalStatus;
if (nic.OperationalStatus == OperationalStatus.Up)
{
macAdress = nic.GetPhysicalAddress().ToString();
break;
}
}
for (int i = 0; i <= macAdress.Length - 1; i++)
{
mac = mac + ":" + macAdress.Substring(i, 2);
// mac adresini alırken parçalı aldığı için aralara : işareti ekliyoruz
i++;
}
// string' in en başına fazladan eklenen 0. indexteki karakter olan : işaretini siliyoruz.
mac = mac.Remove(0, 1);
return mac;
}
public static string macIdInfo()
{
String macAdress = string.Empty;
string mac = null;
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
OperationalStatus ot = nic.OperationalStatus;
if (nic.OperationalStatus == OperationalStatus.Up)
{
macAdress = nic.GetPhysicalAddress().ToString();
break;
}
}
for (int i = 0; i <= macAdress.Length - 1; i++)
{
mac = mac + ":" + macAdress.Substring(i, 2);
// mac adresini alırken parçalı aldığı için aralara : işareti ekliyoruz
i++;
}
// string' in en başına fazladan eklenen 0. indexteki karakter olan : işaretini siliyoruz.
mac = mac.Remove(0, 1);
return mac;
}
IP Info
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
publicstaticstringipInfo()
{
string host = Dns.GetHostName();
IPHostEntry ip = Dns.GetHostByName(host); //Dns.GetHostByName(host);
return ip.AddressList[0].ToString();
//birden fazla ip olabileceği için ilk bulunan değeri alıyoruz.
}
public static string ipInfo()
{
string host = Dns.GetHostName();
IPHostEntry ip = Dns.GetHostByName(host); //Dns.GetHostByName(host);
return ip.AddressList[0].ToString();
//birden fazla ip olabileceği için ilk bulunan değeri alıyoruz.
}
public static string ipInfo()
{
string host = Dns.GetHostName();
IPHostEntry ip = Dns.GetHostByName(host); //Dns.GetHostByName(host);
return ip.AddressList[0].ToString();
//birden fazla ip olabileceği için ilk bulunan değeri alıyoruz.
}
CPU Seri Numarası
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
publicstaticstringgetCPUInfo()
{
string processorInfo = null;
string processorSerial = null;
ManagementObjectSearcher searcher = newManagementObjectSearcher("Select * FROM WIN32_Processor");
Benim sistemimde 2 ekran kartı olduğu için aktif kullandığımın bilgisini almak için Where koşulu ile sorgulama eklemem gerekiyordu. Pasif durumdaki kartı sorguladığınızda çalışır durumda olmadığı için çözünürlük bilgisi alamayacağınız için hata alırsınız. Ya da try-catch ile kontrollü olarak devam edebilirsiniz…
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
publicstaticstringgetVideoControllerInfo()
{
string videoControllerInfo = null;
string name = null;
string ram = null;
string horizontalResolution = null;
string verticalResolution = null;
string deviceID = null;
ManagementObjectSearcher vidSearcher = newManagementObjectSearcher("Select * from Win32_VideoController Where availability='3'");
foreach(ManagementObject mObject in vidSearcher.Get())