diff options
author | Daniel Høyer Iversen <mail@dahoiv.net> | 2020-03-04T21·25+0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-04T21·25+0100 |
commit | e84becd05b3bb879899bb7a8492e1441af3b491e (patch) | |
tree | bcecc9ddad1b6f2e7486ef7060d6c23d340305a4 | |
parent | ec4df3966553250ec0973d50442f024aa0989468 (diff) |
Add support for specifying destination IP address to use in discovery (#313)
Co-authored-by: Kja64 <Ken@lkv20.dk>
-rw-r--r-- | broadlink/__init__.py | 4 | ||||
-rwxr-xr-x | cli/broadlink_discovery | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/broadlink/__init__.py b/broadlink/__init__.py index 41c8010cd6e2..4c0ea4b13719 100644 --- a/broadlink/__init__.py +++ b/broadlink/__init__.py @@ -63,7 +63,7 @@ def gendevice(devtype, host, mac): return device_class(host=host, mac=mac, devtype=devtype) -def discover(timeout=None, local_ip_address=None): +def discover(timeout=None, local_ip_address=None, discover_ip_address='255.255.255.255'): if local_ip_address is None: local_ip_address = socket.gethostbyname(socket.gethostname()) if local_ip_address.startswith('127.'): @@ -116,7 +116,7 @@ def discover(timeout=None, local_ip_address=None): packet[0x20] = checksum & 0xff packet[0x21] = checksum >> 8 - cs.sendto(packet, ('255.255.255.255', 80)) + cs.sendto(packet, (discover_ip_address, 80)) if timeout is None: response = cs.recvfrom(1024) responsepacket = bytearray(response[0]) diff --git a/cli/broadlink_discovery b/cli/broadlink_discovery index 1edbafcbecc6..1c6b80b1483e 100755 --- a/cli/broadlink_discovery +++ b/cli/broadlink_discovery @@ -7,10 +7,11 @@ import broadlink parser = argparse.ArgumentParser(fromfile_prefix_chars='@') parser.add_argument("--timeout", type=int, default=5, help="timeout to wait for receiving discovery responses") parser.add_argument("--ip", default=None, help="ip address to use in the discovery") +parser.add_argument("--dst-ip", default=None, help="destination ip address to use in the discovery") args = parser.parse_args() print("Discovering...") -devices = broadlink.discover(timeout=args.timeout, local_ip_address=args.ip) +devices = broadlink.discover(timeout=args.timeout, local_ip_address=args.ip, discover_ip_address=args.dst_ip) for device in devices: if device.auth(): print("###########################################") |