🌐 PowerShell ile DHCP MAC Adresinden IP Bulma
Windows Server DHCP üzerinde MAC adresine ait IP adresini, DHCP reservation kaydını ve cihaz bilgilerini PowerShell ile hızlıca bulun.
🚀 PowerShell ile DHCP MAC Adresinden IP Nasıl Bulunur?
Windows Server DHCP ortamlarında belirli bir cihazın hangi IP adresini kullandığını bulmak sistem yöneticileri için sık karşılaşılan bir ihtiyaçtır. Özellikle elinizde yalnızca cihazın MAC adresi varsa, DHCP sunucusundaki rezervasyon kayıtlarını PowerShell ile otomatik olarak sorgulayabilirsiniz.
Bunun için Get-DhcpServerv4Scope ve
Get-DhcpServerv4Reservation komutlarını birlikte kullanabilir,
ardından Where-Object ile belirli bir MAC adresine ait kayıtları filtreleyebilirsiniz.
📌 1. DHCP Scope’larını Listeleme
İlk olarak DHCP sunucusunda bulunan IPv4 scope’larını görüntüleyebilirsiniz:
Get-DhcpServerv4Scope
Bu komut DHCP sunucusundaki IPv4 scope’larını listeler.
Her scope için kullanılabilecek temel bilgiler arasında
ScopeId değeri de bulunur.
Birden fazla subnet veya VLAN kullanılan kurumsal ağlarda bu bilgi, cihazın hangi DHCP ağında bulunduğunu anlamak açısından önemlidir.
📌 2. Belirli Bir DHCP Scope İçindeki Reservation Kayıtlarını Görme
Belirli bir scope içerisinde bulunan DHCP reservation kayıtlarını görüntülemek için aşağıdaki komutu kullanabilirsiniz:
Get-DhcpServerv4Reservation -ScopeId 192.168.10.0
Buradaki 192.168.10.0 değeri örnek bir ScopeId’dir.
Kendi DHCP sunucunuzdaki gerçek scope değerini kullanmanız gerekir.
📌 3. MAC Adresine Göre DHCP Reservation Arama
Belirli bir MAC adresine ait DHCP reservation kaydını bulmak için
sonuçları ClientId alanına göre filtreleyebilirsiniz.
Örnek MAC adresi:
7C-9E-BD-42-A8-F1
Tek bir scope içerisinde arama yapmak için:
Get-DhcpServerv4Reservation -ScopeId 192.168.10.0 |
Where-Object { $_.ClientId -eq "7C-9E-BD-42-A8-F1" }
Eşleşme bulunursa ilgili DHCP reservation kaydı döndürülür.
📌 4. Tüm DHCP Scope’larında MAC Adresi Arama
Cihazın hangi DHCP scope’unda bulunduğunu bilmiyorsanız, tüm IPv4 scope’larını otomatik olarak dolaşan aşağıdaki PowerShell pipeline’ını kullanabilirsiniz:
Get-DhcpServerv4Scope |
ForEach-Object {
Get-DhcpServerv4Reservation -ScopeId $_.ScopeId -ErrorAction SilentlyContinue
} |
Where-Object { $_.ClientId -eq "7C-9E-BD-42-A8-F1" } |
Format-List ScopeId,IPAddress,ClientId,Name,Description
🔍 5. PowerShell DHCP Komutunun Satır Satır Analizi
Get-DhcpServerv4Scope
DHCP sunucusundaki IPv4 scope’larını alır.
Dönen nesneler içerisinde scope’un kimliğini belirten
ScopeId alanı bulunur.
ForEach-Object
Her DHCP scope’u tek tek işler. Böylece her scope için ayrı bir komut yazmanız gerekmez.
Get-DhcpServerv4Reservation
İşlenmekte olan scope içerisinde tanımlanmış IPv4 DHCP reservation kayıtlarını getirir.
-ErrorAction SilentlyContinue
Bir scope sorgulanırken hata meydana gelirse ilgili hata mesajının ekrana yazdırılmasını engeller ve pipeline’ın devam etmesini sağlar.
Where-Object
Dönen reservation kayıtlarını filtreler.
Burada ClientId değeri örnekteki MAC adresiyle
karşılaştırılır.
Format-List
Sonuçların yalnızca ihtiyaç duyulan alanlarını liste biçiminde görüntüler.
⚡ 6. Komut Hangi Bilgileri Gösterir?
| Alan | Açıklama |
|---|---|
ScopeId |
Reservation kaydının bulunduğu DHCP scope kimliğidir. |
IPAddress |
Reservation ile ilişkilendirilmiş IP adresidir. |
ClientId |
DHCP istemcisini tanımlayan değerdir. Ethernet senaryolarında çoğunlukla MAC adresi olarak görülür. |
Name |
Reservation kaydında tanımlanan cihaz adıdır. |
Description |
Reservation için girilmiş açıklama bilgisidir. |
📊 7. En Kullanışlı PowerShell DHCP Komutları
| PowerShell Komutu | Kullanım Amacı |
|---|---|
Get-DhcpServerv4Scope |
DHCP IPv4 scope’larını listeler. |
Get-DhcpServerv4Reservation |
DHCP reservation kayıtlarını getirir. |
Where-Object |
Sonuçları MAC veya ClientId gibi alanlara göre filtreler. |
ForEach-Object |
Birden fazla DHCP scope’unu otomatik olarak işler. |
Format-List |
Sonuçları liste biçiminde görüntüler. |
🛠️ 8. Komutu Kendi MAC Adresiniz İçin Uyarlama
Kendi cihazınızın MAC adresini sorgulamak için örnek MAC değerini gerçek ClientId değeriyle değiştirebilirsiniz.
Get-DhcpServerv4Scope |
ForEach-Object {
Get-DhcpServerv4Reservation -ScopeId $_.ScopeId -ErrorAction SilentlyContinue
} |
Where-Object { $_.ClientId -eq "AA-BB-CC-DD-EE-FF" } |
Format-List ScopeId,IPAddress,ClientId,Name,Description
❗ 9. MAC Adresi Bulunamıyorsa Ne Yapılmalı?
Komut herhangi bir sonuç döndürmüyorsa bunun birkaç farklı nedeni olabilir.
- MAC adresi yanlış girilmiş olabilir.
- ClientId değeri farklı bir biçimde kayıtlı olabilir.
- Cihaz DHCP reservation kullanmıyor olabilir.
- Cihaz farklı bir DHCP sunucusundan IP alıyor olabilir.
- Aranan kayıt aktif lease olabilir ancak reservation olmayabilir.
- PowerShell oturumunun DHCP sunucusuna gerekli erişimi olmayabilir.
🔄 10. DHCP Reservation ve DHCP Lease Farkı
DHCP reservation ile DHCP lease birbirinden farklı kavramlardır. Reservation, belirli bir istemci için belirli bir IP adresinin DHCP üzerinde önceden tanımlanmasını sağlar.
DHCP lease ise istemciye DHCP tarafından belirli bir süre için tahsis edilen IP adresini ifade eder.
Bu nedenle bir MAC adresi reservation sorgusunda bulunamıyorsa, cihazın DHCP üzerinden IP almadığı sonucuna doğrudan varılmamalıdır. Cihaz dinamik bir DHCP lease kullanıyor olabilir.
🔒 Güvenlik ve Yetkilendirme
DHCP sunucularında sorgulama ve yönetim işlemlerini yalnızca yetkili olduğunuz sistemlerde gerçekleştirin. Özellikle DHCP yapılandırmasını değiştiren komutları üretim ortamında çalıştırmadan önce olası etkileri değerlendirin.
📝 Sonuç
PowerShell, Windows Server DHCP ortamlarında MAC adresinden
IP adresi bulmak için oldukça kullanışlı bir yönetim aracıdır.
Get-DhcpServerv4Scope,
Get-DhcpServerv4Reservation,
ForEach-Object ve
Where-Object komutlarının birlikte kullanılması,
çok sayıda DHCP scope’u bulunan ağlarda manuel arama ihtiyacını azaltır.
Özellikle yalnızca MAC adresi bilinen bir cihazın DHCP üzerinde reservation kaydını bulmak istediğinizde, tüm scope’ları otomatik olarak tarayan bu yöntem hızlı ve tekrar kullanılabilir bir çözüm sunar.