Merge pull request #2 from FrauJulian/initial

This commit was merged in pull request #2.
This commit is contained in:
2025-07-31 08:34:56 +02:00
committed by GitHub
6 changed files with 61255 additions and 0 deletions
+100
View File
@@ -0,0 +1,100 @@
google.com
microsoft.com
data.microsoft.com
events.data.microsoft.com
www.google.com
office.com
live.com
windowsupdate.com
ctldl.windowsupdate.com
microsoftonline.com
login.microsoftonline.com
e2ro.com
node.e2ro.com
office.net
settings-win.data.microsoft.com
ecs.office.com
officeapps.live.com
skype.com
digicert.com
bing.com
mobile.events.data.microsoft.com
mp.microsoft.com
edge.skype.com
config.edge.skype.com
update.googleapis.com
windows.net
office365.com
teams.microsoft.com
amazonaws.com
clientservices.googleapis.com
msn.com
outlook.office365.com
edge.microsoft.com
safebrowsing.googleapis.com
accounts.google.com
apple.com
doubleclick.net
googleusercontent.com
ocsp.digicert.com
outlook.office.com
www.bing.com
dsp.mp.microsoft.com
g.doubleclick.net
do.dsp.mp.microsoft.com
prod.do.dsp.mp.microsoft.com
sharepoint.com
graph.microsoft.com
core.windows.net
config.teams.microsoft.com
facebook.com
cdn.office.net
login.live.com
substrate.office.com
play.google.com
teams.events.data.microsoft.com
assets.msn.com
lencr.org
c.lencr.org
measure.office.net
nel.measure.office.net
x1.c.lencr.org
self.events.data.microsoft.com
pki.goog
roaming.officeapps.live.com
googleads.g.doubleclick.net
googletagmanager.com
www.googletagmanager.com
clients6.google.com
c.pki.goog
windows.com
cloudflare.com
google-analytics.com
fonts.googleapis.com
youtube.com
lh3.googleusercontent.com
amazon.com
optimizationguide-pa.googleapis.com
clients4.google.com
mtalk.google.com
www.googleapis.com
com.akadns.net
www.google-analytics.com
manage.microsoft.com
azure.com
browser.events.data.microsoft.com
icloud.com
measure.office.com
smartscreen.microsoft.com
fp.measure.office.com
officeclient.microsoft.com
config.office.net
clients.config.office.net
exo.nel.measure.office.net
v10.events.data.microsoft.com
content-autofill.googleapis.com
www.youtube.com
augloop.office.com
aaplimg.com
ls.apple.com
upload.fp.measure.office.com
File diff suppressed because it is too large Load Diff
+10000
View File
File diff suppressed because it is too large Load Diff
+50000
View File
File diff suppressed because it is too large Load Diff
+111
View File
@@ -0,0 +1,111 @@
# DNS Performance Test Script
This PowerShell script measures DNS query response times for a list of domains and outputs the results into a CSV file along with basic statistics.
## 📋 Table of Contents
* [Parameters](#-parameters)
* [Installation](#-installation)
* [Output](#-output)
* [Statistics](#-statistics)
* [Example](#-example)
* [License](#-license)
* [Author](#-author)
---
## ✅ Requirements
* PowerShell 5.1 or higher
* Read access to a text file containing the list of domains (default: `Domains.txt`)
---
## ⚙️ Parameters
| Parameter | Type | Default | Description |
| ------------------- | -------- | ------------- | ---------------------------------- |
| `$DnsServer` | `string` | `1.1.1.1` | DNS server to query |
| `$QueriesPerDomain` | `int` | `3` | Number of queries per domain |
| `$DomainsFile` | `string` | `Domains.txt` | Path to the text file with domains |
| `$ResultsFile` | `string` | `Results.csv` | Path for the output CSV file |
---
## 📥 Installation
1. Download or copy the script into a `.ps1` file.
2. Adjust the parameters (especially file paths) if necessary.
3. Create a `Domains.txt` file in the script directory and list the domains you want to test.
---
## ▶️ Usage
```powershell
.\v1
```
---
## 📄 Output
* **CSV file** (`$ResultsFile`) with columns:
* `domain` — the queried domain name
* `query` — the iteration number of the query
* `response_ms` — response time in milliseconds, or `ERR` if the query failed
* **Console output** showing each query result and final statistics.
---
## 📊 Statistics
At the end of the script run, it prints:
* **Average**: average response time (ms)
* **Shortest**: fastest response time (ms)
* **Longest**: slowest response time (ms)
---
## 📑 Example
```powershell
# Content of Domains.txt:
example.com
microsoft.com
# Execute the script
.\v1.ps1
# Sample console output:
[example.com] Query 1: 23.45 ms
[example.com] Query 2: 22.87 ms
[example.com] Query 3: 24.12 ms
...
==== Stats ====
Average: 23.48 ms
Shortest: 22.87 ms
Longest: 24.12 ms
```
---
## 📝 License
This script is licensed under the MIT License. See [LICENSE](LICENSE) for details.
---
## 👤 Contributors
- [Julian Lechner - FrauJulian](https://fraujulian.xyz)
---
## 🤝 Enjoy?
Give it a star ⭐ on [github](https://github.com/FrauJulian/DNS-Tester)!
### Greetings from Austria! ⛰️
+44
View File
@@ -0,0 +1,44 @@
param(
[string]$DnsServer = '1.1.1.1',
[int] $QueriesPerDomain = 3,
[string]$DomainsFile = 'Domains.txt',
[string]$ResultsFile = 'Results.csv'
)
if (-not (Test-Path $DomainsFile)) {
Write-Error "Domains-File '$DomainsFile' not found."
exit 1
}
$domains = Get-Content $DomainsFile
"domain,query,response_ms" | Out-File -FilePath $ResultsFile -Encoding UTF8
foreach ($domain in $domains) {
for ($i = 1; $i -le $QueriesPerDomain; $i++) {
$sw = [System.Diagnostics.Stopwatch]::StartNew()
try {
Resolve-DnsName -Name $domain -Server $DnsServer -ErrorAction Stop | Out-Null
$sw.Stop()
$ms = [math]::Round($sw.Elapsed.TotalMilliseconds, 2)
}
catch {
$sw.Stop()
$ms = 'ERR'
}
Write-Host "[$domain] Query $($i): $($ms) ms"
"$($domain),$($i),$($ms)" | Out-File -FilePath $ResultsFile -Append -Encoding UTF8
}
}
$results = Import-Csv $ResultsFile | Where-Object { $_.response_ms -ne 'ERR' } `
| Select-Object @{n='response_ms';e={[double]$_.response_ms}}
$avg = [math]::Round(($results | Measure-Object response_ms -Average).Average,2)
$min = ($results | Measure-Object response_ms -Minimum).Minimum
$max = ($results | Measure-Object response_ms -Maximum).Maximum
Write-Host ''
Write-Host "==== Stats ===="
Write-Host "Average: $avg ms"
Write-Host "Shortest: $min ms"
Write-Host "Longest: $max ms"