# การค้นหาอุปกรณ์

คุณสามารถใช้ mDNS ที่มาพร้อมกับบริการของเราเพื่อค้นหาอุปกรณ์ FIRERPA ทั้งหมดที่ออนไลน์อยู่ในเครือข่ายท้องถิ่น (LAN) พร้อมกับข้อมูลที่เกี่ยวข้อง เช่น ที่อยู่และเวอร์ชัน คุณยังสามารถเข้าถึงบริการต่างๆ เช่น รีโมทเดสก์ท็อปของ FIRERPA ได้โดยตรงในเบราว์เซอร์ผ่านโดเมนเนมอย่าง `{ro.serialno}.local` โปรดทราบว่าการใช้โดเมนเนม mDNS อาจต้องการการรองรับจากระบบปฏิบัติการของคุณ และต้องใช้ FIRERPA เวอร์ชัน >= 7.85 โดยค่าเริ่มต้น บริการ mDNS จะไม่ถูกเปิดใช้งาน คุณต้องกำหนดค่า `mdns.enable=true` เพื่อเปิดใช้งานบริการนี้


## การค้นหาอุปกรณ์ทั้งหมด

คุณสามารถใช้ไลบรารีเครื่องมือ mdns-beacon เพื่อแสดงรายการอุปกรณ์ทั้งหมดได้อย่างรวดเร็ว โปรดรันคำสั่ง `pip install mdns-beacon` เพื่อติดตั้งเครื่องมือนี้ก่อน หลังจากติดตั้งเสร็จสิ้น ให้รันคำสั่งต่อไปนี้ ซึ่งจะแสดงรายการอุปกรณ์ทั้งหมดที่กำลังรัน FIRERPA อยู่ในเครือข่ายปัจจุบันของคุณ ฟังก์ชันนี้อาจได้รับผลกระทบจากการตั้งค่าเครือข่ายจริงของคุณหรืออุปกรณ์บางรุ่นที่เฉพาะเจาะจง ซึ่งอาจทำให้ไม่สามารถค้นหาอุปกรณ์ได้

```bash
mdns-beacon listen --service _lamda._tcp.local.
```

![mdns-beacon](/assets/images/mdns-beacon.png)


หากอุปกรณ์ของคุณรองรับ mDNS (Mac รองรับได้ดีที่สุด ส่วน Windows และ Linux อาจต้องมีการกำหนดค่าเพิ่มเติม) คุณสามารถป้อนชื่อเซิร์ฟเวอร์พร้อมพอร์ต เช่น `ad12cf9d6d15385f.local:65000` ในเบราว์เซอร์เพื่อเข้าถึงรีโมทเดสก์ท็อปได้โดยตรง สตริงที่คุณเห็น เช่น `ad12cf9d6d15385f` คือ `android_id` ของระบบ Android คุณสามารถรับค่านี้ได้โดยใช้คำสั่งต่อไปนี้

```bash
adb shell settings get secure android_id
```

แน่นอนว่า คุณยังสามารถใช้ไลบรารีเครื่องมือ `zeroconf` เพื่อค้นหาอุปกรณ์ผ่านการเขียนโปรแกรมได้อีกด้วย เช่น [python-zeroconf](https://github.com/python-zeroconf/python-zeroconf) ซึ่งนอกจากการค้นหาบริการผ่านการเขียนโปรแกรมแล้ว ยังสามารถแสดงข้อมูลบางส่วนของอุปกรณ์ Android ได้อีกด้วย (ต้องมีการกำหนดค่า)


## การกำหนดค่าบริการค้นหา

เรายังรองรับการใช้ไฟล์กำหนดค่า `properties.local` เพื่อตั้งค่าบางส่วนของการค้นหาบริการ เช่น คุณสามารถเปลี่ยนประเภทของบริการ หรือกำหนดให้แต่ละอุปกรณ์ใช้ชื่อ Server แบบคงที่ได้


อนุญาตให้เผยแพร่ข้อมูลของอุปกรณ์ เช่น ID, ABI, เวอร์ชัน Android, รุ่น ฯลฯ หรือไม่ โดยค่าเริ่มต้นจะไม่เผยแพร่

```ini
mdns.meta=true
```

ตั้งค่าชื่อบริการ mDNS สำหรับอุปกรณ์ปัจจุบัน คุณสามารถแก้ไขเพื่อเพิ่มความสามารถในการซ่อนตัวของ FIRERPA ได้ โดยค่าเริ่มต้นคือ `lamda`

```ini
mdns.service=lamda
```

ตั้งค่าชื่อ Server แบบคงที่สำหรับอุปกรณ์ปัจจุบัน ซึ่งก็คือชื่อฟิลด์ Server ที่คุณเห็นในภาพด้านบน ชื่อที่คุณตั้งไม่จำเป็นต้องมีส่วนต่อท้าย `.local` เนื่องจากส่วนต่อท้ายนี้เป็นสิ่งจำเป็นและจะถูกเพิ่มโดยอัตโนมัติ คุณต้องตั้งชื่อที่ไม่ซ้ำกันสำหรับแต่ละอุปกรณ์

```ini
mdns.name=DEVICEID-UNIQUE-NAME
```