当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 测试端口:使用 PowerShell 作为端口扫描器

作者:精品下载站 日期:2024-12-14 07:22:45 浏览:13 分类:玩电脑

测试端口:使用 PowerShell 作为端口扫描器


很久以前,我创建了一个类似于端口扫描器的小函数。它不是 nmap 等企业扫描仪的替代品,但在手边没有 nmap 时,它对于快速测试非常有用。 Test-Port 命令调用 Test-NetConnection 并允许您指定多个端口号。这没什么特别的,但值得分享。

快速浏览 TCP 握手

当一台计算机向另一台计算机发送 SYN 时,远程计算机通常会用 SYN + ACK 或 RST 进行应答。通过这个事实,我们可以测试端口是否打开。

[玩转系统] 测试端口:使用 PowerShell 作为端口扫描器

[玩转系统] 测试端口:使用 PowerShell 作为端口扫描器

测试网连接

要测试端口是否打开,可以使用不同的端口扫描器。或者 Test-NetConnection 或自制脚本。记住测试网络连接:

[玩转系统] 测试端口:使用 PowerShell 作为端口扫描器

看来 cnn.com 的端口 80 已打开(SYN + ACK)。

测试端口

好吧,正如所宣布的,我的小脚本使您能够测试多个端口。这仅适用于 PowerShell 4.0 及更高版本。 (感谢社区引起我的注意)

将以下代码复制到 PowerShell 或 PowerShell ISE。运行。命令 Test-Port 然后变得可用。

function Test-Port
{$computer=Read-Host "Computername | IP Address?"
 $port=Read-Host "Port Numbers? Separate them by comma"
 $port.split(',') | Foreach-Object -Process {If (($a=Test-NetConnection $computer -Port $_ -WarningAction SilentlyContinue).tcpTestSucceeded -eq $true) {Write-Host $a.Computername $a.RemotePort -ForegroundColor Green -Separator " ==> "} else {Write-Host $a.Computername $a.RemotePort -Separator " ==> " -ForegroundColor Red}}
 }

[玩转系统] 测试端口:使用 PowerShell 作为端口扫描器

您将被要求提供目的地和港口。它应该类似于下面的屏幕截图。开放端口标记为绿色,关闭端口标记为红色。

[玩转系统] 测试端口:使用 PowerShell 作为端口扫描器

你觉得有什么奇怪的吗?当 a-d.site 对应的端口(https ==> 443)关闭时,如何阅读本文?别担心,这既不是伪造的屏幕截图,也不是错误或魔法。我的 Active Directory 域名是 a-d.site。在此屏幕中测试了我的内部域。 ?

如果您想让所有 PowerShell 会话的所有用户永久使用测试端口,请将其保存为模块。更多关于这里:

PowerShell 函数:如何创建第一个 PowerShell 模块命令

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯