Port Hunter
This is a simple poweshell script I have wrote to help me identify hosts that are live within the network. You have to create a file to feed into the script on the location
'C:\temp\ips.txt'
You will place one IP per line
The script will go trought every IP on the file, and use the Test-NetConnection cmd-let on powershell to the port you specify.
This command is useful and better than the test-connection or ping because it will send a TCP connection instead of a ICMP, which is great if you are blocking ICMP on your environment, this script will still work.
Clear-Host
$targetIp = Get-Content "c:/temp/ips.txt"
$outArray = @()
$outfile = "C:\temp\outFile.txt"
$port = Read-Host "Select the port number you would like to check if its open? "
forEach ($record in $targetIp){
$connect = Test-NetConnection $record -Port $port
if($connect.TcpTestSucceeded -like "True" ){Write-Host "[OPEN] $record Port" -ForegroundColor green;$value = "[OPEN] IP: $record on Port $port"}
else{Write-Host "I cant ping $record" -ForegroundColor Red;$value = "[CLOSED] IP: $record Port $port"}
$outArray += $value
}
$outArray > $outFile
Write-Host "File exported to $outFile" -ForegroundColor Yellow
Start-Sleep -Seconds 1
#read file that we are able to ping on console that was just exported
$log = Get-Content "C:\temp\outFile.txt"
forEach($x in $log){
if ($x -like "*OPEN*"){
$x = $x.replace("[OPEN] IP: ","").replace(" on Port $port","")
Write-Host $x -ForegroundColor Green
}
}
repsitory link