shok
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору может скрипт поможет локализовать и увидеть проблему у себя запускал - всё идеально. Код: # Устанавливаем кодировку UTF-8, чтобы убрать "крякозябры" [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 chcp 65001 # Домен для проверки $domain = "forum.ru-board.com" # DNS-сервера для сравнения $dnsGoogle = "8.8.8.8" $dnsCloudflare = "1.1.1.1" # Файл для логов (на рабочем столе) $logFile = "$env:USERPROFILE\Desktop\ru-board_check.log" # --- Функции проверки --- # Проверка DNS-резолвинга function Test-Dns { param($domain, $server, $label) Write-Host "=== DNS ($label) ===" try { if ($server) { # Запрос к указанному DNS-серверу $result = Resolve-DnsName $domain -Server $server } else { # Запрос через системный DNS (локальный) $result = Resolve-DnsName $domain } $result | Format-Table Name,IPAddress,TTL Add-Content -Path $logFile -Value "DNS ($label): $($result | Out-String)" } catch { Write-Host "Ошибка DNS ($label): $($_.Exception.Message)" Add-Content -Path $logFile -Value "DNS Error ($label): $($_.Exception.Message)" } } # Проверка HTTP-доступа function Test-Http { param($domain, $label) Write-Host "=== HTTP ($label) ===" try { $resp = Invoke-WebRequest -Uri "http://$domain" -UseBasicParsing -TimeoutSec 10 Write-Host "HTTP статус: " $resp.StatusCode Add-Content -Path $logFile -Value "HTTP ($label): $($resp.StatusCode)" } catch { Write-Host "Ошибка HTTP ($label): $($_.Exception.Message)" Add-Content -Path $logFile -Value "HTTP Error ($label): $($_.Exception.Message)" } } # Проверка TCP-соединения function Test-Tcp { param($domain, $port, $label) Write-Host "=== TCP (${label}:${port}) ===" try { $client = New-Object System.Net.Sockets.TcpClient $client.Connect($domain, $port) if ($client.Connected) { Write-Host "TCP соединение установлено." Add-Content -Path $logFile -Value "TCP (${label}:${port}): OK" } $client.Close() } catch { Write-Host "TCP сброс/ошибка (${label}:${port}): $($_.Exception.Message)" Add-Content -Path $logFile -Value "TCP Error (${label}:${port}): $($_.Exception.Message)" } } # Проверка ping (ICMP) function Test-Ping { param($domain, $label) Write-Host "=== Ping ($label) ===" try { $pingResult = ping $domain Write-Host $pingResult Add-Content -Path $logFile -Value "Ping ($label):`n$pingResult" } catch { Write-Host "Ошибка ping ($label): $($_.Exception.Message)" Add-Content -Path $logFile -Value "Ping Error ($label): $($_.Exception.Message)" } } # --- Запуск проверок --- # Проверка через Google DNS Test-Dns $domain $dnsGoogle "GoogleDNS" Test-Http $domain "GoogleDNS" Test-Tcp $domain 80 "GoogleDNS" Test-Ping $domain "GoogleDNS" # Проверка через Cloudflare DNS Test-Dns $domain $dnsCloudflare "CloudflareDNS" Test-Http $domain "CloudflareDNS" Test-Tcp $domain 80 "CloudflareDNS" Test-Ping $domain "CloudflareDNS" # Проверка через локальный системный DNS Test-Dns $domain $null "LocalDNS" Test-Http $domain "LocalDNS" Test-Tcp $domain 80 "LocalDNS" Test-Ping $domain "LocalDNS" Write-Host "`nПроверка завершена. Результаты сохранены в $logFile" | Добавлено: Вот ещё скрипт, для детекта подмены и аномального TTL Код: # Устанавливаем кодировку UTF-8 [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 chcp 65001 $domain = "forum.ru-board.com" $dnsGoogle = "8.8.8.8" $dnsCloudflare = "1.1.1.1" $logFile = "$env:USERPROFILE\Desktop\ru-board_check.log" # --- Функция проверки DNS --- function Test-Dns { param($domain, $server, $label) try { if ($server) { $result = Resolve-DnsName $domain -Server $server -ErrorAction Stop } else { $result = Resolve-DnsName $domain -ErrorAction Stop } # Возвращаем объект с IP и TTL return [PSCustomObject]@{ Label = $label IP = ($result | Select-Object -First 1).IPAddress TTL = ($result | Select-Object -First 1).TTL } } catch { return [PSCustomObject]@{ Label = $label IP = "Ошибка" TTL = "Ошибка" } } } # --- Сравнение результатов --- function Compare-DnsResults { param($results) Write-Host "`n=== Сравнение DNS-результатов ===" $results | Format-Table Label,IP,TTL # Сравнение IP $ips = $results.IP | Sort-Object -Unique if ($ips.Count -gt 1) { Write-Host "⚠️ Обнаружены разные IP-адреса: $($ips -join ', ')" Add-Content -Path $logFile -Value "Разные IP: $($ips -join ', ')" } else { Write-Host "✅ Все DNS вернули одинаковый IP: $($ips)" Add-Content -Path $logFile -Value "Одинаковый IP: $($ips)" } # Сравнение TTL $ttls = $results.TTL | Sort-Object -Unique if ($ttls.Count -gt 1) { Write-Host "⚠️ Обнаружены разные TTL: $($ttls -join ', ')" Add-Content -Path $logFile -Value "Разные TTL: $($ttls -join ', ')" } else { Write-Host "✅ Все DNS вернули одинаковый TTL: $($ttls)" Add-Content -Path $logFile -Value "Одинаковый TTL: $($ttls)" } } # --- Запуск проверок --- $googleResult = Test-Dns $domain $dnsGoogle "GoogleDNS" $cloudflareResult= Test-Dns $domain $dnsCloudflare "CloudflareDNS" $localResult = Test-Dns $domain $null "LocalDNS" $allResults = @($googleResult, $cloudflareResult, $localResult) Compare-DnsResults $allResults Write-Host "`nПроверка завершена. Результаты сохранены в $logFile" |
| Всего записей: 12000 | Зарегистр. 30-04-2006 | Отправлено: 00:20 04-03-2026 | Исправлено: shok, 16:16 04-03-2026 |
|