Site Overlay

PowerShell ile DHCP MAC Adresinden IP Bulma

🌐 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.

Bilgi: Aşağıdaki MAC adresleri örnek amaçlıdır. Kendi ortamınızda aradığınız cihazın DHCP sunucusunda kayıtlı olan ClientId değerini kullanabilirsiniz.

📌 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
Bu komut ne yapıyor? DHCP sunucusundaki tüm IPv4 scope’larını dolaşır, her scope içindeki reservation kayıtlarını getirir, belirtilen ClientId ile eşleşen MAC adresini filtreler ve sonucu okunabilir bir liste halinde gösterir.

🔍 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
İpucu: Sonuç alamıyorsanız MAC adresinin biçimini kontrol edin. DHCP sunucusundaki ClientId değerinin tire, iki nokta veya farklı bir gösterim biçiminde kayıtlı olup olmadığı önemlidir.

❗ 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.

Author: Arif Akyüz

Arif Akyüz - Siber Güvenlik Uzmanı ve Dijital Dönüşüm Lideri 15 yılı aşkın süredir bilişim sektöründe, özellikle siber güvenlik ve dijital dönüşüm alanlarında hizmet veren bir uzmanım. Hem stratejik hem de teknik düzeyde çözümler sunarak organizasyonların güvenlik altyapılarını güçlendiriyor ve dijitalleşme süreçlerini yönetiyorum.