在網絡通信中,端口是指邏輯上的端點。當一個數據包從網絡上抵達一個機器時,這個機器如何才能知道該數據包應該交給哪個應用程序進行處理?端口就是解決這個問題的方案之一。網絡通信中的端口號代表着某個進程的地址,利用這個端口可以確保數據包被正確的應用程序接收。
一、 Ping 命令的基本用法
在 Windows 操作系統中,使用 ping 命令可以測試兩台計算機之間的連接狀態。Windows 的 ping 命令可以使用兩種協議:Internet 協議版本 4(IPv4)和 Internet 協議版本 6(IPv6)。下面是使用 ping 命令的基本語法:
ping [-t] [-a] [-n Number] [-l Length] [-f] [-i TTL] [-v TOS] [-r Count] [-s Count] [-j HostList] [-k HostList] [-w Timeout] [-R] [-S SrcAddr] [-c Compartment] [-p] [-4] [-6] TargetName
其中,-t 選項是指在運行 ping 命令後,讓該命令一直執行直到手動停止。-a 選項用於返回目標計算機的完全限定域名(FQDN),-n 選項用於指定 ping 命令發送的數據包數量。
二、使用 Ping 檢查單個端口是否可用
在使用 ping 命令做端口探測時,可以通過 ping 命令搭配特定端口號進行使用,達到探測端口是否可用的效果。下面是一段示例代碼,用來測試單個端口的可用性:
ping localhost:80
這段代碼的含義是,使用 ping 命令發送一條數據包到本地機器的 80 端口。如果端口正常工作,那麼 ping 命令會收到一條正常響應。
三、使用 Batch 批處理命令進行大量端口探測
在 Windows 操作系統中,可以使用 Batch 批處理命令來批量進行端口探測。下面是一段示例代碼:
@echo off
set PORTS=80,443,8080,3306
for %%P in (%PORTS%) do (
echo Pinging port %%P...
ping localhost:%%P -n 1 -w 1000 > NUL && echo Port %%P is open || echo Port %%P is closed
)
這段代碼會探測四個端口,即 80 端口,443 端口,8080 端口和 3306 端口。代碼中的 for /f 循環語句會將端口列表依次取出,然後執行 ping 命令,判斷是否有響應,最後輸出響應結果。
四、使用 PowerShell 進行端口掃描
除了使用 Batch 批處理命令外,還可以使用 PowerShell 來完成端口探測。下面是一段示例代碼:
$ports = 80, 443, 8080, 3306
foreach ($port in $ports) {
if(Test-NetConnection localhost -Port $port -InformationLevel Quiet){
Write-Host "The port $port is open." -ForegroundColor Green
}
else{
Write-Host "The port $port is closed." -ForegroundColor Red
}
}
這段代碼會對指定的端口進行探測,並輸出探測結果。其中,如果 Test-NetConnection 命令返回的結果為 true,那麼該端口為開放狀態。反之則是關閉狀態。
原創文章,作者:BYUWM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/331604.html