จะรับรายชื่อไคลเอนต์ wifi ที่เชื่อมต่อใน OpenWrt 10.03 ได้อย่างไร


คำตอบ:


14

คุณสามารถใช้ arp-table หรือ DHCP-leases ไม่ใช่วิธีที่สมบูรณ์แบบบางทีก็เพียงพอแล้ว

รายการ arp-table

arp

แสดงรายการสัญญาเช่า DHCP

cat /tmp/dhcp.leases

... และรวมกัน

for ip in $(arp | grep -v IP | awk '{print $1}'); do 
    grep $ip /tmp/dhcp.leases; 
done

2
คุณมีสัญญาเช่าล่าสุดเช่นแล็ปท็อปที่ปิดเครื่องและโทรศัพท์ในเครือข่าย wifi อื่น
Dereckson

ฉันยังคงมี cat /tmp/dhcp.leases การตอบสนองที่ว่างเปล่าในขณะที่อุปกรณ์จำนวนมากได้รับ IP และการตั้งค่าเครือข่ายจาก WIFI ของ OpenWRT
Boris Ivanov

สิ่งนี้จะไม่ทำงานหากเราเตอร์ของคุณทำงานเป็นบริดจ์เนื่องจากไม่ได้ให้ DHCP เอง
Raúl Salinas-Monteagudo

12

ในการดูไคลเอนต์ wifi ที่เชื่อมโยงแม้ว่าพวกเขาจะไม่มีไคลเอ็นต์ DHCP หรือไม่มี ip คุณต้องถาม AP สำหรับอุปกรณ์ wifi ที่เกี่ยวข้อง:

# Universal (Tested with OpenWRT 14.07 and 15.05.X)
iwinfo wlan0/wl0/ath0 assoclist

# Proprietary Broadcom (wl)
wl -i wl0 assoclist

# Proprietary Atheros (madwifi)
wlanconfig ath0 list sta

# MAC80211
iw dev wlan0 station dump

วิธีนี้คุณจะเห็นความเร็วการเชื่อมต่อ สำหรับฉันนี่เป็นแบบนี้:

# iwinfo wlan0 assoclist
12:34:56:78:9A:BC  -26 dBm / -95 dBm (SNR 69)  1930 ms ago
RX: 24.0 MBit/s, MCS 0, 20MHz                   3359 Pkts.
TX: 130.0 MBit/s, MCS 14, 20MHz, short GI       1209 Pkts.

1

แล้ว nmap ล่ะ?

opkg install nmap

จากนั้นทำการสแกนเครือข่ายย่อยของคุณ (น่าจะเป็น 192.168.1.0/24)

nmap -sS 192.168.1.0/24

นี่จะแสดงรายการบริการที่ทำงานบนไคลเอนต์เช่นกัน นอกจากนี้ยังอาจตั้งค่าปิดการเตือนถ้าไคลเอนต์มีซอฟต์แวร์ตรวจจับพอร์ตสแกน (เช่น snort) ติดตั้งดังนั้นควรระมัดระวัง


คุณสร้างปริมาณการใช้งานที่นี่ หากคุณต้องการเก็บสถิติทุกนาทีตัวอย่างเช่นคุณต้องการสร้างการค้ามนุษย์การฉายรังสีและการบริโภคโดยไม่จำเป็น ฉันกำลังคิดถึงกรณีที่คุณต้องการทราบว่าโทรศัพท์มือถือของคุณอยู่ในสถานที่ของคุณหรือไม่สำหรับระบบอัตโนมัติในบ้าน คุณไม่ต้องการระบายแบตเตอรี่โทรศัพท์ของคุณสำหรับสิ่งนี้
Raúl Salinas-Monteagudo

1

แทนที่จะเป็นcat /tmp/dhcp.leases|wc -lและarp -aทางออกของฉันคือ

opkg update
opkg install arp-scan
arp-scan --interface=br-lan --localnet | grep responded | awk '{print $12}'

มันจะคืนจำนวนอุปกรณ์ที่เชื่อมต่อกับ OpenWRT โดยพอร์ต LAN เกือบจะตามเวลาจริง


1

ในการรับโดยตรงจากhostapd(ภูตที่จัดการจุดเชื่อมต่อ):

$ ubus call hostapd.wlan0 get_clients

{
    "freq": 2462,
    "clients": {
        "<mac addr 1>": {
            "auth": true,
            "assoc": true,
            "authorized": true,
            "preauth": false,
            "wds": false,
            "wmm": true,
            "ht": true,
            "vht": false,
            "wps": false,
            "mfp": false,
            "rrm": [
                0,
                0,
                0,
                0,
                0
            ],
            "aid": 1
        }
    }
}

(หรือแทนที่wlan0ด้วยส่วนต่อประสานที่คุณสนใจ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.