在網路通信中,埠是指邏輯上的端點。當一個數據包從網路上抵達一個機器時,這個機器如何才能知道該數據包應該交給哪個應用程序進行處理?埠就是解決這個問題的方案之一。網路通信中的埠號代表著某個進程的地址,利用這個埠可以確保數據包被正確的應用程序接收。
一、 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-tw/n/331604.html