mirror of
https://github.com/fleschutz/PowerShell.git
synced 2025-04-21 17:38:19 +02:00
Update list-dns-servers.ps1
This commit is contained in:
parent
85b5d2b84f
commit
4de7ec9831
@ -2,13 +2,13 @@
|
|||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Lists DNS servers
|
Lists DNS servers
|
||||||
.DESCRIPTION
|
.DESCRIPTION
|
||||||
This PowerShell script measures the latency of public and free DNS servers and lists it.
|
This PowerShell script list public and free DNS servers together with IPv4 addresses and measured latency.
|
||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
PS> ./list-dns-servers.ps1
|
PS> ./list-dns-servers.ps1
|
||||||
|
|
||||||
Provider IPv4 Latency
|
DNS PROVIDER IPv4 ADDRESSES LATENCY
|
||||||
-------- ---- -------
|
------------ ---- --------- -------
|
||||||
AdGuard DNS (Cyprus) 94.140.14.14 / 94.140.15.15 222 / 205 ms
|
AdGuard DNS (Cyprus) 94.140.14.14 · 94.140.15.15 222 · 205 ms
|
||||||
...
|
...
|
||||||
.LINK
|
.LINK
|
||||||
https://github.com/fleschutz/PowerShell
|
https://github.com/fleschutz/PowerShell
|
||||||
@ -16,24 +16,24 @@
|
|||||||
Author: Markus Fleschutz | License: CC0
|
Author: Markus Fleschutz | License: CC0
|
||||||
#>
|
#>
|
||||||
|
|
||||||
function CheckDNSServer { param($Provider, $IPv4Pri, $IPv4Sec)
|
function MeasureDNSServer([string]$provider, [string]$IPv4Pri, [string]$IPv4Sec) {
|
||||||
$SW=[system.diagnostics.stopwatch]::startNew();$null=(nslookup fleschutz.de $IPv4Pri 2>$null);[int]$Lat1=$SW.Elapsed.TotalMilliseconds
|
$time=[system.diagnostics.stopwatch]::startNew();$null=(nslookup fleschutz.de $IPv4Pri 2>$null);[int]$lat1=$time.Elapsed.TotalMilliseconds
|
||||||
|
|
||||||
$SW=[system.diagnostics.stopwatch]::startNew();$null=(nslookup fleschutz.de $IPv4Sec 2>$null);[int]$Lat2=$SW.Elapsed.TotalMilliseconds
|
$time=[system.diagnostics.stopwatch]::startNew();$null=(nslookup fleschutz.de $IPv4Sec 2>$null);[int]$lat2=$time.Elapsed.TotalMilliseconds
|
||||||
|
|
||||||
New-Object PSObject -Property @{ Provider=$Provider; IPv4="$IPv4Pri / $IPv4Sec"; Latency="$Lat1 / $Lat2 ms" }
|
New-Object PSObject -Property @{ 'DNS PROVIDER'=$provider; 'IPv4 ADDRESSES'="$IPv4Pri · $IPv4Sec"; LATENCY="$lat1 · $lat2 ms" }
|
||||||
}
|
}
|
||||||
|
|
||||||
function List-DNS-Servers {
|
function List-DNS-Servers {
|
||||||
Write-Progress "Loading data/public-dns-servers.csv..."
|
Write-Progress "Loading data/public-dns-servers.csv..."
|
||||||
$table = Import-CSV "$PSScriptRoot/../data/public-dns-servers.csv"
|
$table = Import-CSV "$PSScriptRoot/../data/public-dns-servers.csv"
|
||||||
Write-Progress -completed "Done."
|
Write-Progress -completed "Done."
|
||||||
foreach($row in $table) { CheckDNSServer $row.PROVIDER $row.IPv4_PRI $row.IPv4_SEC }
|
foreach($row in $table) { MeasureDNSServer $row.PROVIDER $row.IPv4_PRI $row.IPv4_SEC }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
List-DNS-Servers | Format-Table -property @{e='Provider';width=50},@{e='IPv4';width=32},@{e='Latency';width=15}
|
List-DNS-Servers | Format-Table -property @{e='DNS PROVIDER';width=50},@{e='IPv4 ADDRESSES';width=32},@{e='LATENCY';width=15}
|
||||||
exit 0 # success
|
exit 0 # success
|
||||||
} catch {
|
} catch {
|
||||||
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
|
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
|
||||||
|
Loading…
Reference in New Issue
Block a user