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 脚本

如何使用 powershell routes.jason 传递正文

如何使用Powershell远程管理Linux服务器