# Device Discovery

You can use the mDNS service included with our service to discover all online FIRERPA devices on the local network, along with their corresponding addresses, versions, and other information. You can even directly access services like the FIRERPA remote desktop in your browser using a domain name like `{ro.serialno}.local`. Note that using mDNS domain names may require your system to support it and your FIRERPA version to be >= 7.85. By default, the mDNS service is not started; you need to configure `mdns.enable=true` to enable it.


## Discover All Devices

You can use the mdns-beacon tool library to quickly list all devices. First, run `pip install mdns-beacon` to install the tool. After installation, execute the following command. It will list all devices running FIRERPA on the current network. This feature may be affected by your actual network settings or certain special device models, which could prevent device discovery.

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

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


If your device supports mDNS (macOS has the best support; Windows and Linux may require additional configuration), you can directly enter the server name plus the port, such as `ad12cf9d6d15385f.local:65000`, into your browser to access the remote desktop. The string you see, such as `ad12cf9d6d15385f`, is the Android system's `android_id`. You can obtain it using the following command.

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

Of course, you can also use a `zeroconf` library for programmatic device discovery, such as [python-zeroconf](https://github.com/python-zeroconf/python-zeroconf). In addition to programmatic service discovery, it can also enumerate some Android device information (requires configuration).


## Service Discovery Configuration

We also support using the `properties.local` configuration file to configure parts of the service discovery. For example, you can change the service type or make each device use a fixed server name.


Whether to allow broadcasting the device's own information, such as the current device ID, ABI, Android version, model, etc. It is not broadcast by default.

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

Set the mDNS service name for the current device. You can modify this to enhance FIRERPA's stealth capabilities. The default is `lamda`.

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

Set a fixed server name for the current device, which is the `Server` field name you see in the image above. The name you set does not need to include the `.local` suffix; this suffix is mandatory and will be added automatically. You need to set a fixed, unique name for each device.

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