اگر مدیر شبکه باشی یا فقط بخواهی بدانی چه دستگاههایی به شبکهی خانه یا شرکتت وصلاند، لازم نیست حتماً نرمافزار سنگینی نصب کنی. ویندوز ابزارهای کافی دارد. در این مقاله با CMD و PowerShell دستگاههای روشن (Live Host) شبکه را پیدا میکنیم.
اگر پاسخ برگشت، دستگاه روشن است. برای بررسی کل محدودهی
مزیت این روش این است که حتی دستگاههایی را نشان میدهد که ping را با فایروال بستهاند ولی در همان زیرشبکه هستند، چون ARP با فایروال ویندوز بلاک نمیشود. آدرس MAC به شناسایی نوع دستگاه هم کمک میکند.
با پارامتر
این روش ترتیبی است و برای ۲۵۴ آدرس ممکن است چند دقیقه طول بکشد.
پارامتر
خروجی آدرس IP، آدرس MAC و وضعیت هر همسایه را نشان میدهد.
یا در CMD:
اگر مقدار
هشدار: این دستورها را فقط روی شبکهای اجرا کن که مالکش خودتی یا اجازهی مدیریتش را داری.
نود لایو یعنی چه؟
نود لایو (Live Host) دستگاهی است که روشن و به شبکه متصل است و به درخواستها پاسخ میدهد؛ مثل کامپیوتر، پرینتر، دوربین IP یا مودم. شناسایی این دستگاهها اولین قدم برای عیبیابی، مدیریت IP و بررسی امنیت شبکه است.روش اول: دستور ping در CMD
سادهترین راه، فرستادن یک بستهی ICMP به یک آدرس است:ping -n 1 192.168.1.10
192.168.1.1 تا 192.168.1.254 از حلقه استفاده کن:
for /L %i in (1,1,254) do @ping -n 1 -w 200 192.168.1.%i | find "TTL="
- پارامتر
-n 1یعنی فقط یک بسته ارسال شود. - پارامتر
-w 200یعنی حداکثر ۲۰۰ میلیثانیه منتظر پاسخ بمان. - بخش
find "TTL="باعث میشود فقط پاسخهای موفق نمایش داده شوند.
.bat مینویسی، بهجای %i از %%i استفاده کن.
روش دوم: جدول ARP با دستور arp -a
بعد از اجرای ping روی محدوده، سیستمعامل آدرس MAC دستگاههایی را که پاسخ دادهاند ذخیره میکند:arp -a
روش سوم: دستور Test-Connection در PowerShell
معادل ping در PowerShell، دستورTest-Connection است:
Test-Connection -ComputerName 192.168.1.10 -Count 1 -Quiet
-Quiet فقط True یا False برمیگردد. برای اسکن کل محدوده:
1..254 | ForEach-Object {
$ip = "192.168.1.$_"
if (Test-Connection -ComputerName $ip -Count 1 -Quiet) { $ip }
}
اسکن سریعتر با پردازش موازی
در PowerShell 7 به بالا میتوانی چند آدرس را همزمان بررسی کنی:1..254 | ForEach-Object -Parallel {
$ip = "192.168.1.$_"
if (Test-Connection -ComputerName $ip -Count 1 -TimeoutSeconds 1 -Quiet) { $ip }
} -ThrottleLimit 50
-ThrottleLimit تعداد کارهای همزمان را مشخص میکند.
روش چهارم: دستور Get-NetNeighbor
این دستور معادل PowerShell دستورarp -a است:
Get-NetNeighbor -AddressFamily IPv4 | Where-Object State -ne 'Unreachable'
پیدا کردن نام دستگاه
برای تبدیل IP به نام دستگاه در PowerShell:Resolve-DnsName 192.168.1.10
nslookup 192.168.1.10
بررسی باز بودن یک پورت
گاهی دستگاه روشن است ولی ping جواب نمیدهد. باTest-NetConnection پورت یک سرویس را تست کن:
Test-NetConnection -ComputerName 192.168.1.10 -Port 3389
TcpTestSucceeded برابر True باشد، دستگاه روشن است و آن سرویس (مثلاً Remote Desktop) در دسترس است.
نکات مهم
- فایروال: بعضی دستگاهها به ping جواب نمیدهند. حتماً خروجی
arp -aرا هم کنار آن بررسی کن. - محدودهی آیپی: با دستور
ipconfigآدرس و Subnet Mask خودت را ببین و محدوده را بر اساس آن تنظیم کن. همهی شبکهها از نوع192.168.1.xنیستند. - زیرشبکههای دیگر: ARP فقط دستگاههای همان زیرشبکه را نشان میدهد.
- ابزارهای تخصصی: برای شبکههای بزرگتر، ابزارهایی مثل Nmap یا Advanced IP Scanner سریعتر و کاملترند.
جمعبندی
با دستورهایping، arp -a، Test-Connection و Get-NetNeighbor بدون نصب هیچ نرمافزاری میتوانی دستگاههای روشن شبکه را پیدا کنی. بهترین نتیجه از ترکیب این روشها به دست میآید: اول محدوده را ping کن، بعد جدول ARP را بخوان و در پایان با Resolve-DnsName نام دستگاهها را پیدا کن.



