วิธีใช้คำสั่ง ping ใน Command Prompt หลายเครื่องพร้อมกัน

บทนำ: ความจำเป็นในการ ping หลายเครื่องพร้อมกัน

ในการบริหารเครือข่ายขนาดใหญ่ ไม่ว่าจะเป็นในองค์กร หรือในบ้านที่มีอุปกรณ์เชื่อมต่อจำนวนมาก การตรวจสอบสถานะการเชื่อมต่อของคอมพิวเตอร์หรือเซิร์ฟเวอร์หลายเครื่องพร้อมกันเป็นสิ่งที่ต้องทำอยู่เสมอ คำสั่ง ping เป็นเครื่องมือพื้นฐานที่ใช้ทดสอบการเชื่อมต่อโดยส่งแพ็กเก็ต ICMP ไปยังโฮสต์เป้าหมาย แต่โดยปกติแล้ว Command Prompt จะรันคำสั่ง ping ได้ทีละเป้าหมายเท่านั้น หากเราต้องการตรวจสอบหลายเครื่องพร้อมกัน การใช้คำสั่ง ping แบบเดิมจะใช้เวลานานและไม่มีประสิทธิภาพ บทความนี้จะแนะนำวิธีใช้คำสั่ง ping ใน Command Prompt สำหรับหลายเครื่องพร้อมกัน ทั้งการใช้ Batch for loop, PowerShell, และเครื่องมือเสริม เพื่อช่วยให้การตรวจสอบเครือข่ายรวดเร็วและมีประสิทธิภาพมากขึ้น

การใช้คำสั่ง ping กับหลาย IP ในบรรทัดเดียว

ใน Windows Command Prompt เราสามารถระบุเป้าหมายหลาย IP ในคำสั่ง ping เดียวกันโดยคั่นด้วยช่องว่าง เช่น ping 8.8.8.8 1.1.1.1 8.8.4.4 คำสั่งนี้จะทำงานตามลำดับ คือ ping ทีละ IP แทนที่จะพร้อมกัน ถึงแม้จะไม่ใช่การทำงานแบบขนาน แต่ก็ช่วยลดจำนวนคำสั่งที่ต้องพิมพ์ โดยเฉพาะเมื่อต้องการทดสอบเพียงไม่กี่เครื่อง คำสั่งนี้รองรับเฉพาะ Windows 10 และ Windows Server 2016 ขึ้นไป จากเอกสารของ Microsoft Learn การระบุหลาย IP ในหนึ่งคำสั่งจะมีผลลัพธ์แยกกันตามลำดับที่ระบุ เหมาะสำหรับการตรวจสอบแบบเร็วที่ไม่ต้องการรันหลายหน้าต่าง

วิธีใช้คำสั่ง ping ใน Command Prompt หลายเครื่องพร้อมกัน - 1

การใช้ for loop ใน Batch เพื่อ ping ช่วง IP

หากต้องการ ping ทุกเครื่องใน subnet เดียว เช่น 192.168.0.1 ถึง 192.168.0.254 การใช้ for loop ใน Command Prompt จะช่วยให้ทำงานเป็นลำดับโดยอัตโนมัติ คำสั่ง Batch ดังนี้: for /L %i in (1,1,254) do ping -n 1 -w 20 192.168.0.%i | find "Reply" คำสั่งนี้จะวนลูปตั้งแต่ 1 ถึง 254 โดย ping แต่ละ IP ด้วยแพ็กเก็ตเดียว (-n 1) และตั้ง timeout ที่ 20 มิลลิวินาที (-w 20) จากนั้นใช้ find เพื่อกรองเฉพาะบรรทัดที่ตอบกลับ (Reply) ทำให้เราทราบว่าเครื่องใดตอบสนองภายในเวลาที่กำหนด ที่มา: SuperUser วิธีนี้เหมาะสำหรับใช้งานใน Command Prompt พื้นฐาน แต่ข้อเสียคือทำงานตามลำดับทีละเครื่อง ทำให้ใช้เวลาโดยรวมนานเมื่อมีหลาย IP

การใช้ PowerShell Test-Connection เพื่อ ping พร้อมกัน

Windows PowerShell มี cmdlet ชื่อ Test-Connection ที่สามารถ ping หลายเครื่องพร้อมกันได้ โดยใช้พารามิเตอร์ -ComputerName และระบุหลายชื่อหรือหลาย IP คั่นด้วยเครื่องหมายจุลภาค ตัวอย่าง: Test-Connection -ComputerName 8.8.8.8, 1.1.1.1, 8.8.4.4 -Count 1 คำสั่งนี้จะส่งแพ็กเก็ตหนึ่งครั้งไปยังทุกเป้าหมายพร้อมกัน (ในระดับ PowerShell) และแสดงผลลัพธ์แบบตาราง Test-Connection ยังสามารถใช้พารามิเตอร์ -ThrottleLimit เพื่อจำกัดจำนวนการเชื่อมต่อพร้อมกัน และ -AsJob เพื่อรันเป็นงานในเบื้องหลัง ข้อมูลจาก Microsoft Docs ระบุว่า Test-Connection เป็น cmdlet ที่ทันสมัยกว่า ping.exe และรองรับการทำงานแบบขนานโดยธรรมชาติ เหมาะสำหรับการตรวจสอบหลายเครื่องในองค์กรที่ใช้ PowerShell เป็นหลัก

วิธีใช้คำสั่ง ping ใน Command Prompt หลายเครื่องพร้อมกัน - 2

การใช้ PowerShell Jobs สำหรับการ ping ต่อเนื่องหลายเครื่อง

ในการตรวจสอบแบบต่อเนื่อง เช่น ping ตลอด 24 ชั่วโมง เพื่อดูความเสถียรของหลายเครื่อง การใช้ Start-Job ใน PowerShell ช่วยให้เราสามารถรันคำสั่ง ping แยกเป็นงานพื้นหลังสำหรับแต่ละ IP ได้ เช่น:$ips = "8.8.8.8","1.1.1.1","8.8.4.4" foreach ($ip in $ips) { Start-Job -ScriptBlock { param($ip) while($true){ ping.exe -n 1 $ip; Start-Sleep -Seconds 2 } } -ArgumentList $ip } การทำงานนี้จะสร้าง job สำหรับแต่ละ IP โดยรัน ping แบบลูปไม่สิ้นสุด (while($true)) และพัก 2 วินาทีระหว่างการ ping แต่ละครั้ง ผลลัพธ์จะถูกบันทึกไว้ใน job ซึ่งเราสามารถเรียกดูด้วย Receive-Job หรือ Export-CSV ข้อดีคือสามารถรันหลาย job พร้อมกันได้ โดยระบบจะจัดสรรเธรดให้อัตโนมัติ วิธีนี้มีประสิทธิภาพสูงแต่ต้องใช้ความรู้ PowerShell พอสมควร สำหรับผู้เริ่มต้น อาจลองใช้เครื่องมือสำเร็จรูปก่อน

การใช้เครื่องมือ Third-party: PingInfoView

หากไม่ต้องการเขียนโค้ด มีเครื่องมือฟรีชื่อ PingInfoView จาก NirSoft ที่ให้คุณ ping หลายเครื่องพร้อมกันผ่าน GUI โปรแกรมนี้รองรับการนำเข้า IP จากไฟล์ข้อความ แสดงสถานะแบบเรียลไทม์ และบันทึกผลลัพธ์เป็น CSV หรือ HTML วิธีการใช้งาน: ดาวน์โหลดและเปิดโปรแกรม คลิก Add หรือ import รายการ IP แล้วกด Start Ping โปรแกรมจะ ping ทุก IP พร้อมกันและแสดงสีเขียวหรือแดงตามสถานะ PingInfoView เป็นที่นิยมในหมู่นักดูแลระบบเพราะใช้งานง่าย ไม่ต้องติดตั้ง และรองรับการตั้งค่า Timeout และ Packet Size ได้ ที่มา: NirSoft อย่างไรก็ตาม ควรดาวน์โหลดจากเว็บไซต์ทางการเท่านั้นเพื่อความปลอดภัย

วิธีใช้คำสั่ง ping ใน Command Prompt หลายเครื่องพร้อมกัน - 3

ตารางเปรียบเทียบวิธีการ ping หลายเครื่องพร้อมกัน

วิธีรูปแบบคำสั่ง / เครื่องมือการทำงานพร้อมกันความยากเหมาะสำหรับ
Command Prompt หลาย IP ในบรรทัดเดียวping IP1 IP2 IP3ตามลำดับง่ายตรวจสอบไม่กี่เครื่อง
Batch for loopfor /L %i in … do ping …ตามลำดับปานกลางตรวจสอบช่วง IP
PowerShell Test-ConnectionTest-Connection -ComputerName IP1, IP2พร้อมกันปานกลางเครือข่ายขนาดเล็กถึงกลาง
PowerShell JobsStart-Job + ScriptBlockพร้อมกัน (เบื้องหลัง)ยากการตรวจสอบต่อเนื่องหลายเครื่อง
PingInfoViewGUI โปรแกรมพร้อมกันง่ายผู้ใช้ทั่วไปที่ไม่ต้องการเขียนสคริปต์

ข้อควรระวังและคำแนะนำในการใช้ ping หลายเครื่อง

  • การ ping หลายเครื่องพร้อมกันอาจทำให้เกิด traffic ในเครือข่ายสูง โดยเฉพาะถ้าใช้แพ็กเก็ตขนาดใหญ่ ควรปรับขนาดและจำนวนแพ็กเก็ตให้เหมาะสม
  • ในการทำงาน batch หรือ PowerShell ควรระวังสิทธิ์ผู้ใช้ บางคำสั่งต้องรันในฐานะ Administrator โดยเฉพาะเมื่อต้องการเปลี่ยนค่า Timeout หรือ TTL
  • ผลลัพธ์จากคำสั่ง ping แบบต่อเนื่อง (เช่น -t) อาจทำให้หน้าจอเลื่อนเร็วมาก ควรบันทึกผลลัพธ์ลงไฟล์ด้วยตัวดำเนินการ > เช่น ping -t 8.8.8.8 > log.txt
  • การใช้ PowerShell Jobs ต้องจัดการหน่วยความจำและยกเลิก job เมื่อไม่ใช้ มิเช่นนั้นอาจค้างในระบบ ใช้ Remove-Job เพื่อล้างข้อมูล
  • สำหรับเครื่องมือ Third-party อย่าง PingInfoView ควรตรวจสอบว่าไม่มีการแทรกมัลแวร์ และดาวน์โหลดจากเว็บไซต์ของผู้พัฒนาเท่านั้น
  • ในเครือข่ายที่มีไฟร์วอลล์หรือนโยบายความปลอดภัยสูง อาจมีบางเครื่องที่ตอบสนองต่อ ping ไม่ได้ ควรใช้วิธีอื่นร่วมด้วย เช่น Test-NetConnection ใน PowerShell

บทสรุป

การ ping หลายเครื่องพร้อมกันใน Command Prompt ไม่ใช่เรื่องยากอีกต่อไป ไม่ว่าจะใช้คำสั่งพื้นฐานแบบคั่นด้วยช่องว่าง, for loop แบบ Batch, PowerShell cmdlet Test-Connection, การสร้าง Jobs ใน PowerShell หรือใช้เครื่องมือ GUI อย่าง PingInfoView แต่ละวิธีมีข้อดีและข้อเสียแตกต่างกันไป สำหรับผู้ดูแลเครือข่ายที่ต้องการความเร็วและความยืดหยุ่น แนะนำให้ใช้ Test-Connection สำหรับงานทั่วไป และ PowerShell Jobs สำหรับการตรวจสอบแบบต่อเนื่อง อย่างไรก็ตาม การเลือกวิธีใดขึ้นอยู่กับความถนัดและสภาพแวดล้อมการทำงาน สุดท้ายนี้ ควรพิจารณาความปลอดภัยของเครือข่ายและผลกระทบต่อแบนด์วิธด้วย

แหล่งอ้างอิง

Microsoft Learn. (2023). ping command. สืบค้นจาก https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ping

วิธีใช้คำสั่ง ping ใน Command Prompt หลายเครื่องพร้อมกัน - 4

SuperUser. (2012). CMD.exe command to ping a range of addresses. สืบค้นจาก https://superuser.com/questions/420714/cmd-exe-command-to-ping-a-range-of-addresses

Microsoft Docs. (2023). Test-Connection (Microsoft.PowerShell.Management). สืบค้นจาก https://learn.microsoft.com/powershell/module/microsoft.powershell.management/test-connection

วิธีใช้คำสั่ง ping ใน Command Prompt หลายเครื่องพร้อมกัน - 5

Reddit r/PowerShell. (2023). How to do continuous ping to multiple IPs and output? สืบค้นจาก https://reddit.com/r/PowerShell/comments/17949iu/how_to_do_continuous_ping_to_multiple_ips_and/

NirSoft. (2023). PingInfoView v1.30. สืบค้นจาก https://nirsoft.net/utils/pinginfoview.html

ping command prompt network windows troubleshooting หลายเครื่อง ping พร้อมกัน
ข้อควรระวัง ข้อมูลนี้ใช้เพื่อการศึกษาและแก้ปัญหาเบื้องต้นเท่านั้น
ผู้เขียน

Stefano Barcellos

ผู้ร่วมเขียนที่ Visite Barbados

« โพสต์ก่อนหน้า
อัปเดตไดรเวอร์เครื่องพิมพ์ง่ายๆ เพิ่มประสิทธิภาพการพิมพ์

โพสต์ที่เกี่ยวข้อง