Powershell追踪路由
Posted zhr1217
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Powershell追踪路由相关的知识,希望对你有一定的参考价值。
一般情况下,我们可以通过Cmdlet命令来实现路由追踪
我们是否能尝试通过Powershell完成此功能呢?
脚本具体如下,可以直接粘贴
function GetTraceRoute($hostname) {
function __TracerRouteResult($Address,$Status, $TTL) {
[PSCustomObject]@{Address=$Address;Status=$Status;TTL=$TTL}
}
$timeout = 10000;
$maxTTL = 30;
$bufferSize = 32;
# ---------------------------------------------
$buffer = [byte[]]@(1..32)
[Random]::new().NextBytes($buffer)
$pinger = [System.Net.NetworkInformation.Ping]::new()
for ($ttl = 1; $ttl -le $maxTTL; $ttl++) {
$options = [System.Net.NetworkInformation.PingOptions]::new($ttl, $true)
$reply = $pinger.Send($hostname, $timeout, $buffer, $options)
if ($reply.Status -eq [System.Net.NetworkInformation.IPStatus]::Success) {
# Success means the tracert has completed
Write-Output (__TracerRouteResult $reply.Address ([System.Net.NetworkInformation.IPStatus]::Success) $ttl)
return
} elseif ($reply.Status -eq [System.Net.NetworkInformation.IPStatus]::TtlExpired) {
# TtlExpired means we‘ve found an address, but there are more addresses
Write-Output (__TracerRouteResult $reply.Address ([System.Net.NetworkInformation.IPStatus]::TtlExpired) $ttl)
} elseif ($reply.Status -eq [System.Net.NetworkInformation.IPStatus]::TimedOut) {
Write-Output (__TracerRouteResult ‘‘ ([System.Net.NetworkInformation.IPStatus]::TimedOut) $ttl)
} else {
break
}
}
}
以上是关于Powershell追踪路由的主要内容,如果未能解决你的问题,请参考以下文章
在Azure上通过Powershell创建多Interface的Cisco CSR路由器
powershell 一个基本的PowerShell脚本,用于将IIS 7应用程序请求路由(tl; dr; UrlRewrite的反向代理功能)推送到多个服务器。
Azure Application Gateway 设置URL路由 - PowerShell
如何使用 Python 中的参数运行 PowerShell 脚本