今晚练习编写简易端口开放探测脚本
默认扫描:21,22,80,443,445,3389
从上到下改进的
1、简易端口扫描(单个ip,指定具体端口)
param (
[parameter(mandatory=$false)]
[alias('u')]
$url= "127.0.0.1",
[parameter(mandatory=$false)]
[alias('p')]
$ports
)
if ($ports -eq $null){
$ports = (21,22,80,443,445,3389)
}
foreach ($port in $ports) {
$socket = New-Object System.Net.Sockets.TcpClient
try {
$socket.Connect($url, $port)
Write-Host "$url : $port is open" -ForegroundColor Green
}
catch {
Write-Host "$url : $port is closed" -ForegroundColor Red
}
finally {
$socket.Dispose()
}
}
2、简易端口扫描 (单个ip,可以指定范围,可特定端口扫描)
param (
[parameter(mandatory=$false)]
[alias('u')]
$url= "127.0.0.1",
[parameter(mandatory=$false)]
[alias('p')]
$ports
)
if ($ports -eq $null){
$ports = (21,22,80,443,445,3389)
}
if ($ports -match '-'){
$range = $ports -split '-'
$start = [int]$range[0]
$end = [int]$range[1]
$ports = $start..$end
}
foreach ($port in $ports) {
$socket = New-Object System.Net.Sockets.TcpClient
try {
$socket.Connect($url, $port)
Write-Host "$url : $port is open" -ForegroundColor Green
}
catch {
Write-Host "$url : $port is closed" -ForegroundColor Red
}
finally {
$socket.Dispose()
}
}
3、简易端口扫描(可从文件中读取ip,可指定ip,可指定范围端口,可指定特定端口)
param (
[parameter(mandatory=$false)]
[alias('u')]
$url= "127.0.0.1",
[parameter(mandatory=$false)]
[alias('p')]
$ports,
[parameter(mandatory=$false)]
[alias('f')]
$filename
)
if ($ports -eq $null){
$ports = (21,22,80,443,445,3389)
}
if ($ports -match '-'){
$range = $ports -split '-'
$start = [int]$range[0]
$end = [int]$range[1]
$ports = $start..$end
}
if ($filename -eq $null){
foreach ($port in $ports) {
$socket = New-Object System.Net.Sockets.TcpClient
try {
$socket.Connect($url, $port)
Write-Host "$url : $port is open" -ForegroundColor Green
}
catch {
Write-Host "$url : $port is closed" -ForegroundColor Red
}
finally {
$socket.Dispose()
}
}
}else {
$file = Get-Content $filename
foreach ($url in $file){
foreach ($port in $ports) {
$socket = New-Object System.Net.Sockets.TcpClient
try {
$socket.Connect($url, $port)
Write-Host "$url : $port is open" -ForegroundColor Green
}
catch {
Write-Host "$url : $port is closed" -ForegroundColor Red
}
finally {
$socket.Dispose()
}
}
}
}