# 裝置探索

您可以透過我們服務內建的 mDNS 來探索區域網路中所有線上的 FIRERPA 裝置，以及其對應的位址和版本等資訊。您甚至可以透過 `{ro.serialno}.local` 這樣的網域名稱，在瀏覽器中直接存取 FIRERPA 遠端桌面等服務。請注意，使用 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 系統的 `android_id`，您可以透過以下指令取得它。

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

當然，您也可以透過 `zeroconf` 工具程式庫來以程式化的方式進行裝置探索，例如 [python-zeroconf](https://github.com/python-zeroconf/python-zeroconf)。它除了可以進行程式化的服務探索外，還能列舉出部分 Android 裝置資訊（需要設定）。


## 探索服務設定

我們也支援您使用 `properties.local` 設定檔來配置服務探索的部分內容，例如，您可以變更服務類型，或讓每台裝置使用固定的伺服器名稱。


是否允許廣播自身的裝置資訊，如當前裝置的 ID、ABI、Android 版本、型號等。預設為不廣播。

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

設定當前裝置的 mDNS 服務名稱。您可以修改此名稱以提高 FIRERPA 的隱匿性。預設為 `lamda`。

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

為當前裝置設定一個固定的伺服器名稱，即您在上圖中看到的 Server 欄位名稱。您設定的名稱無需包含 `.local` 後綴，此後綴是必要的且會自動新增。您需要為每個裝置設定一個固定且不重複的名稱。

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