Skip to content

Commit 77f2bd4

Browse files
committed
Add QueryCount parameter
1 parent a65b0df commit 77f2bd4

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

DDI/Measure-DnsServerResponse.ps1

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,32 @@ function Measure-DnsResponseTime {
1717
[Parameter(
1818
Mandatory,
1919
Position = 0,
20-
HelpMessage = 'The DNS server name or IP address to query.')]
20+
HelpMessage = 'The DNS server name or IP address to query.'
21+
)]
2122
[ValidateNotNullOrEmpty()]
2223
[string]
2324
$DnsServer,
2425

2526
[Parameter(
2627
Mandatory,
2728
Position = 1,
28-
HelpMessage = 'The domain or host name to resolve.')]
29+
HelpMessage = 'The domain or host name to resolve.'
30+
)]
2931
[ValidateNotNullOrEmpty()]
3032
[string]
31-
$TargetName
33+
$TargetName,
34+
35+
# Number of times to query the DNS server for the target name.
36+
[Parameter(
37+
HelpMessage = 'The number of times to query the DNS server for the target name.'
38+
)]
39+
[ValidateRange(1, [int]::MaxValue)]
40+
[int16]
41+
$QueryCount = 100
3242
)
3343
$queryTimes = @()
34-
Write-Host "Querying DNS server $DnsServer for $TargetName 100 times: " -NoNewline -ForegroundColor Green
35-
for ($i = 0; $i -lt 100; $i++) {
44+
Write-Host "Querying DNS server $DnsServer for $TargetName $QueryCount times: " -NoNewline -ForegroundColor Green
45+
for ($i = 0; $i -lt $QueryCount; $i++) {
3646
Write-Host '.' -NoNewline -ForegroundColor Yellow
3747
try {
3848
Clear-DnsClientCache
@@ -45,10 +55,10 @@ function Measure-DnsResponseTime {
4555
# To Do: Add error handling. Change return to a continue and track how many times it failed, then reduce the result count for the average--but also show a factor for how reliable the server was.
4656
}
4757
}
48-
Write-Host ". Done!`n" -ForegroundColor Green
58+
Write-Host '. Done!' -ForegroundColor Green
4959
"Times: $($QueryTimes -join ', ')" | Write-Verbose
5060
$AverageTime = [math]::Round( ($QueryTimes | Measure-Object -Average).Average, 2 )
51-
Write-Host "Average response time: $AverageTime ms" -ForegroundColor Green
61+
Write-Host "Average response time: $AverageTime ms`n" -ForegroundColor Green
5262
$AverageTime
5363
}
5464

@@ -71,7 +81,7 @@ function Measure-NetworkHops {
7181
[string]
7282
$Server
7383
)
74-
Write-Host "Measuring network hops to $Server..." -NoNewline -ForegroundColor Yellow
84+
Write-Host "Measuring network hops to $Server..." -ForegroundColor Magenta
7585
$TestResult = Test-NetConnection -ComputerName $Server -TraceRoute -InformationLevel Detailed
7686
$Result = [PSCustomObject]@{
7787
Server = $Server
@@ -102,7 +112,7 @@ $Servers | ForEach-Object {
102112
NetworkHops = $NetworkHops.Hops
103113
PingSucceeded = $NetworkHops.PingSucceeded
104114
PingRoundTripTime = $NetworkHops.PingRoundTripTime
105-
AverageQueryResponseTime = Measure-DnsResponseTime -DnsServer $_ -TargetName 'day3bits.com'
115+
AverageQueryResponseTime = Measure-DnsResponseTime -DnsServer $_ -TargetName 'github.com'
106116
}
107117
$TestResults.Add($Results) | Out-Null
108118
}

0 commit comments

Comments
 (0)