Должен признаться, я хотел посмотреть, кто-то уже это сделал.
Вы можете использовать .Net Framework для реализации не так бедных-Ман-трассировку как Powershell Сценарий
Здесь праймер, который работает быстро, но опасно. Также нет статистики.
#
# Mid-Waged-Mans-Tracert
#
$ping = new-object System.Net.NetworkInformation.Ping
$timeout = 5000
$maxttl = 64
$address = [string]$args
$message = [System.Text.Encoding]::Default.GetBytes("MESSAGE")
$dontfragment = false
$success = [System.Net.NetworkInformation.IPStatus]::Success
echo "Tracing $address"
for ($ttl=1;$i -le $maxttl; $ttl++) {
$popt = new-object System.Net.NetworkInformation.PingOptions($ttl, $dontfragment)
$reply = $ping.Send($address, $timeout, $message, $popt)
$addr = $reply.Address
$rtt = $reply.RoundtripTime
try {
$dns = [System.Net.Dns]::GetHostByAddress($addr)
} catch {
$dns = "-"
}
$name = $dns.HostName
echo "Hop: $ttl`t= $addr`t($name)"
if($reply.Status -eq $success) {break}
}
Edit:
Удалены некоторые опасности, добавив поймать заявление. Единственная опасности, что по-прежнему присутствует тот факт, что мы только отправить один запрос на хоп, что может означать, что мы не достичь хмель из-за падение пакета невиновного. Решение этой проблемы остается задачей читателей. Подсказка: (Подумайте о петлях внутри петель)
Бонус: теперь мы пытаемся получить запись dns каждого прыжка!
Вы можете использовать оригинальный 'tracert.exe' из PowerShell, вам просто нужно разобрать выход себя –
Благодаря человеку, вы мне очень помогли !!! – Sylca