Added receiver example
This commit is contained in:
parent
2d691e2bb5
commit
6dccd890c8
30
README.md
30
README.md
@ -14,7 +14,7 @@ These information are the following:
|
||||
|
||||
The messages is formed as the following UTF-8 encoded string:
|
||||
```
|
||||
BIRBOX|{ipaddr}|{hostname}|{version}|{uptime}
|
||||
BIRBOX|{ipaddr}|{hostname}|{version}|{uptime in seconds}
|
||||
```
|
||||
|
||||
The messages are broadcast to the 6969 UDP port.
|
||||
@ -24,3 +24,31 @@ All you need is to listen to such packets on the network, so you can find your l
|
||||
## Usage
|
||||
|
||||
Just start the script as a system daemon. You may have to change the interface name.
|
||||
|
||||
## Receiver example
|
||||
|
||||
```python3
|
||||
import socket
|
||||
|
||||
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
|
||||
client.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
|
||||
client.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
||||
|
||||
client.bind(("", 6969))
|
||||
while True:
|
||||
data, addr = client.recvfrom(1500)
|
||||
|
||||
src_ip = addr[0]
|
||||
try:
|
||||
header, self_ip, hostname, version, uptime = data.decode().split('|')
|
||||
except ValueError:
|
||||
continue
|
||||
|
||||
if header == 'BIRBOX':
|
||||
print("IP Address:",src_ip)
|
||||
if src_ip != self_ip:
|
||||
print("Warning! Reported and origin IP differ! Reported ip:",self._ip)
|
||||
print("Hostname:", hostname)
|
||||
print("Version:", version)
|
||||
print("System uptime:", uptime,'sec')
|
||||
```
|
Loading…
Reference in New Issue
Block a user