Effectuer une requête DNS (nslookup) en PowerShell avec [System.Net.DNS]

Effectuer une requête DNS (nslookup) en PowerShell avec [System.Net.DNS]

En Powershell, comme en VBA ou dans d’autres langages, on peut s’appuyer sur l’espace de nom System.NET, ses classes et ses méthodes.

Pour faire un nslookup en Powershell, nous allons donc nous appuyer sur la classe Dns.

Actuellement, la version du Framework .NET est la 4.8, et on peut trouver toutes les class ici .

En Powershell, pour faire un nslookup (Name Server lookup) de nom Dns  ou d’une adresse IP, on peut donc utiliser les méthodes suivante  :

    • [System.Net.DNS]::Resolve(« IPouNomDns »)
    • [System.Net.DNS]::GetHostByAddress(« IP »)
    • [System.Net.DNS]::GetHostByName(« NomDns »)

Pour faire un Nslookup avec la méthode [System.Net.DNS]::Resolve(« IPouNomDns »), il faut indiquer au choix l’adresse IP ou le nom DNS.

[System.Net.DNS]::Resolve(« 8.8.8.8 ») 

ou 

[System.Net.DNS]::Resolve(« google-public-dns-a.google.com »)

Pour récupérer uniquement la valeur de l’adresse IP, on peut utiliser la commande :

[System.Net.DNS]::Resolve(« google-public-dns-a.google.com »).AddressList | Where-Object { $_.AddressFamily -eq ‘interNetwork’ } | Select-Object -ExpandProperty IPAddressToString

Pour faire un Nslookup avec la méthode [System.Net.DNS]::GetHostByAddress(« IP »), il faut indiquer l’adresse IP  : 

[System.Net.DNS]::GetHostByAddress(« 8.8.8.8 »)

Pour faire un Nslookup avec la méthode [System.Net.DNS]::GetHostByName(« NomDns »), il faut indiquer le nom DNS :

[System.Net.DNS]::GetHostByName(« dns.google »)

A lire :

1 Comment