ฉันรู้ว่ามีคำสั่งบรรทัดเดียวและอาร์กิวเมนต์ที่สามารถช่วยแสดงที่อยู่ IP ของคอมพิวเตอร์ทั้งหมด (ที่ใช้งานอยู่) บน LAN และคอมพิวเตอร์ของฉันยังเป็นไคลเอนต์เหมือนหนึ่งในที่แสดง แต่ฉันลืม มันคืออะไร?
ฉันรู้ว่ามีคำสั่งบรรทัดเดียวและอาร์กิวเมนต์ที่สามารถช่วยแสดงที่อยู่ IP ของคอมพิวเตอร์ทั้งหมด (ที่ใช้งานอยู่) บน LAN และคอมพิวเตอร์ของฉันยังเป็นไคลเอนต์เหมือนหนึ่งในที่แสดง แต่ฉันลืม มันคืออะไร?
คำตอบ:
คุณสามารถทำarp -a
คำสั่งเพื่อแสดงรายการARPทั้งหมดในตารางเกี่ยวกับคอมพิวเตอร์ในเครือข่ายของคุณ
ไม่ใช่ทุกสิ่งที่มีที่อยู่ IP เป็นคอมพิวเตอร์ - ฉันไม่พบคำแนะนำใด ๆ ที่ส่งคืนที่อยู่ IP ที่ใช้งานได้ทั้งหมด - ในความเป็นจริงแล้วส่งคืนน้อยมาก เครือข่ายในบ้านของฉันมีการรวมกันของอุปกรณ์แบบมีสายและไร้สายและเราเตอร์สองตัว, โทรศัพท์มือถือ, ทีวี, PVR, Apple AirPort และอาจเป็นบางสิ่งที่ฉันลืมไปแล้ว ฉันใช้สิ่งต่อไปนี้เพื่อสแกนที่อยู่ทั้งหมดในเครือข่ายย่อย 192.168.1.xxx:
for /L %i in (0,1,255) do ping -n 1 -w 250 192.168.1.%i>>ipaddress.txt
ไฟล์ผลลัพธ์ ipaddress.txt มีผลการ ping สำหรับที่อยู่ทั้งหมดและฉันค้นหาที่อยู่ " Received = 1
" - ที่อยู่ 16 รายการปัจจุบันส่งคืนผลลัพธ์ - ฉันมีคอมพิวเตอร์เพียง 4 เครื่องในบ้านเท่านั้นและไม่ได้เปิดใช้ทั้งหมด
for /L %i in (0,1,255) do ping -n 1 192.168.1.%i -4 | findstr -m "bytes=32" >> ipaddress.txt
มีข้อดี แต่ไม่ได้เป็นพื้นฐานของคำตอบไม่สอดคล้องกับคำตอบที่เหลือซึ่งใช้Received = 1
แทนbytes=32
และไม่จำเป็นต้องเป็นแบบที่ฉันเคยทำ ฉันกำลังเพิ่มความคิดเห็นนี้ทุกคนควรหาคำแนะนำที่เป็นประโยชน์
for /L %i in (1,1,254)
อาจเหมาะสมกว่าเนื่องจากxxxxxx.0
เป็นที่อยู่ของเครือข่ายทั้งหมดและxxxxxx.255
เป็นที่อยู่ออกอากาศ
มีnet view /all
คำสั่งที่จะแสดงรายการชื่อคอมพิวเตอร์ทั้งหมดที่เชื่อมต่อกับ LAN เดียวกัน
จากนั้นคุณสามารถดึงข้อมูลที่อยู่ IP แต่ละรายการได้โดยใช้nslookup <computer name>
คำสั่งหรือเขียนชุดสคริปต์เพื่อทำเพื่อคุณ
นี่คือชุดตัวอย่างที่ฉันโยนเข้าด้วยกันเพื่ออธิบาย
@echo off
setlocal EnableDelayedExpansion
set "xNext="
set "xComputer="
for /f %%A in ('net view /all') do (
set "xComputer=%%~A"
if "!xComputer:~0,2!"=="\\" for /f "tokens=2,* delims=. " %%X in ('nslookup %%A') do (
if "!xNext!"=="1" (
echo.!xComputer! = %%X.%%Y
set "xNext=0"
)
if "!xComputer:~2!"=="%%~X" set "xNext=1"
)
)
endlocal
pause
นอกเหนือจากarp -a
, net view /all
หรือการเขียนสคริปต์ชุดไม่มีบรรทัดคำสั่งพื้นเมือง / ในตัวที่จะทำเช่นนี้ (อย่างน้อยไม่ทราบว่าฉัน)
หากคุณยินดีที่จะใช้คำสั่งที่ไม่ใช่เจ้าของภาษาที่ผมจะแนะนำให้ใช้Nmap คุณสามารถเรียกใช้nmap -sn 192.168.0.0/24
(แทนที่ซับเน็ตด้วยเครือข่ายที่เหมาะสมสำหรับ LAN ของคุณ) เพื่อให้ได้สิ่งที่คุณกำลังมองหาไว้วางใจได้มากกว่าnet view /all
หรือarp -a
ในความคิดของฉัน
ipconfig /all
(ใช้เครื่องหมายฟอร์เวิร์ดสแลชไม่ย้อนกลับ)
ตามที่ระบุโดยคนอื่นคุณสามารถใช้arp -a
อย่างไรก็ตามให้แน่ใจว่าคุณ ping ที่อยู่ออกอากาศก่อนเพื่อให้ ARP รายงานอุปกรณ์ทั้งหมด ตัวอย่างเช่น,ping 192.168.0.255
คุณจะได้รับรายการอุปกรณ์ทั้งหมดที่เชื่อมต่อกับเครือข่ายด้วยที่อยู่ IP และ MAC ของพวกเขา คุณสามารถค้นหาที่อยู่ MAC บนเว็บไซต์เช่นhttps://aruljohn.com/mac.plเพื่อดูว่าใครเป็นผู้จำหน่าย NIC สิ่งนี้จะช่วยคุณ จำกัด ขอบเขตของอุปกรณ์ส่วนใหญ่ เช่นคอมพิวเตอร์เครื่องพิมพ์ทีวีโทรศัพท์มือถือ ฯลฯ
echo ls %USERDNSDOMAIN%|nslookup
นี่คือทางออกที่รวดเร็วของฉัน มันบอกคุณว่าอุปกรณ์ประเภทใดที่เชื่อมต่อกับที่อยู่ IP แต่ละอัน:
netstat -r
แสดงที่อยู่ IP ของคอมพิวเตอร์ทั้งหมด (ที่ใช้งานอยู่)
ฉันคิดว่าคุณอาจหมายถึงnetstat -a
สิ่งนี้จะช่วยให้คุณมีรายชื่อที่ใช้งานอยู่ หากคุณต้องการทราบโปรแกรมโดยใช้ที่อยู่ ip ให้ใช้netstat -b
(เปิดในฐานะผู้ดูแลระบบ)
netstat -a
ทิ้งรายการการเชื่อมต่อเครือข่ายปัจจุบัน คอลัมน์ที่อยู่ IP ด้านซ้ายประกอบด้วยส่วนต่อประสานในเครื่อง