私は誰かがすでにこれをしたかどうかを知りたがっています。
あなたはPowerShellのスクリプトここ
、高速に動作し、プライマー、しかし、危険と-SO-貧しいない - マン-のtracerouteを実装するための.NET Frameworkを使用することができます。 また、統計もありません。
#
# 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}
}
編集:
は、catchステートメントを追加することにより、危険の一部を削除しました。まだ存在している のみ危険は、我々がないを行うことを意味する可能性があり、我々は唯一のホップごとに単一のリクエストを送信しているという事実は、無実パッケージドロップによるホップに到達されます。 この問題を解決することは、依然として読者の練習です。 ヒント:(ループ内のループを考える)
ボーナス:今度は各ホップのDNSエントリを取得しようとしています!
あなたはあなただけの出力は、自分が –
感謝の男、あなたは私をたくさん助けてきた解析する必要があり、PowerShellの元 'tracert.exe'を使用することができます! – Sylca