Windows Parity
This commit is contained in:
		
							parent
							
								
									93b20128f5
								
							
						
					
					
						commit
						a07fe07605
					
				
							
								
								
									
										17
									
								
								TestURL.ps1
								
								
								
								
							
							
						
						
									
										17
									
								
								TestURL.ps1
								
								
								
								
							|  | @ -13,11 +13,23 @@ $hastebinUrl = "https://haste.nixc.us/documents" | ||||||
| $ntfyServer = "https://ntfy.nixc.us/bnHobG80sO5ZF4SB" | $ntfyServer = "https://ntfy.nixc.us/bnHobG80sO5ZF4SB" | ||||||
| $ntfyCredentials = "admin:tiZcgc8Waf9mg5A4n2aJ4Qk2RyYnwEHDT" | $ntfyCredentials = "admin:tiZcgc8Waf9mg5A4n2aJ4Qk2RyYnwEHDT" | ||||||
| 
 | 
 | ||||||
|  | # Retrieve hostname, OS information, and external IP addresses | ||||||
|  | $hostname = $env:COMPUTERNAME | ||||||
|  | $osInfo = Get-CimInstance Win32_OperatingSystem | Select-Object -ExpandProperty Caption | ||||||
|  | $externalIPv4 = (Invoke-RestMethod -Uri "https://ifconfig.me/ip" -Method Get -UseBasicParsing -ErrorAction SilentlyContinue) -replace '\s+', '' -replace '\n', '' | ||||||
|  | $externalIPv6 = (Invoke-RestMethod -Uri "https://ifconfig.me/ipv6" -Method Get -UseBasicParsing -ErrorAction SilentlyContinue) -replace '\s+', '' -replace '\n', '' | ||||||
|  | if (-not $externalIPv4) { $externalIPv4 = "Unavailable" } | ||||||
|  | if (-not $externalIPv6) { $externalIPv6 = "Unavailable" } | ||||||
|  | 
 | ||||||
| # Function to perform the URL and network tests | # Function to perform the URL and network tests | ||||||
| function Test-Url { | function Test-Url { | ||||||
|     param ($url) |     param ($url) | ||||||
|     $result = @{ |     $result = @{ | ||||||
|         Timestamp = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")  # Explicitly convert to string format to avoid epoch time |         Timestamp = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")  # Explicitly convert to string format to avoid epoch time | ||||||
|  |         Hostname = $hostname | ||||||
|  |         OS = $osInfo | ||||||
|  |         ExternalIPv4 = $externalIPv4 | ||||||
|  |         ExternalIPv6 = $externalIPv6 | ||||||
|         Url = $url.Trim() |         Url = $url.Trim() | ||||||
|         StatusCode = "" |         StatusCode = "" | ||||||
|         ResponseTime = "" |         ResponseTime = "" | ||||||
|  | @ -137,13 +149,14 @@ try { | ||||||
|     exit 1 |     exit 1 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # Send a notification to ntfy server with the Hastebin link and test settings | # Send a notification to ntfy server with the Hastebin link, hostname, OS info, and external IPs | ||||||
| Write-Host "Sending notification to ntfy server..." | Write-Host "Sending notification to ntfy server..." | ||||||
| try { | try { | ||||||
|     $ntfyMessage = "URL test completed. Log available at: $hasteLink`nTested URL: $url" |     $ntfyMessage = "URL test completed on host: $hostname (OS: $osInfo, External IPv4: $externalIPv4, External IPv6: $externalIPv6). Log available at: $hasteLink`nTested URL: $url" | ||||||
|     $ntfyResponse = Invoke-RestMethod -Uri $ntfyServer -Method Post -Body $ntfyMessage -Headers @{ Authorization = "Basic $([Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($ntfyCredentials)))" } |     $ntfyResponse = Invoke-RestMethod -Uri $ntfyServer -Method Post -Body $ntfyMessage -Headers @{ Authorization = "Basic $([Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($ntfyCredentials)))" } | ||||||
|     Write-Host "Notification sent to ntfy." |     Write-Host "Notification sent to ntfy." | ||||||
| } catch { | } catch { | ||||||
|     Write-Error "Failed to send notification to ntfy: $_" |     Write-Error "Failed to send notification to ntfy: $_" | ||||||
|     exit 1 |     exit 1 | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue