@@ -190,7 +190,7 @@ def list_identity(cls, path) -> Optional[Dict[str, Any]]:
190190 return identity
191191
192192 @classmethod
193- def discover (cls ) -> List [Dict [str , Any ]]:
193+ def discover (cls , broadcast_address = "255.255.255.255" ) -> List [Dict [str , Any ]]:
194194 """
195195 Discovers available devices on the current network(s).
196196 Returns a list of the discovered devices Identity Object (as ``dict``).
@@ -209,13 +209,13 @@ def discover(cls) -> List[Dict[str, Any]]:
209209
210210 for ip in ip_addrs :
211211 cls .__log .debug (f"Broadcasting discover for IP: %s" , ip )
212- devices += cls ._broadcast_discover (ip , message , request )
212+ devices += cls ._broadcast_discover (ip , message , request , broadcast_address )
213213
214214 if not devices :
215215 cls .__log .debug (
216216 "No devices found so far, attempting broadcast without binding to an IP."
217217 )
218- devices += cls ._broadcast_discover (None , message , request )
218+ devices += cls ._broadcast_discover (None , message , request , broadcast_address )
219219
220220 if devices :
221221 cls .__log .info (f"Discovered %d device(s): %r" , len (devices ), devices )
@@ -225,7 +225,7 @@ def discover(cls) -> List[Dict[str, Any]]:
225225 return devices
226226
227227 @classmethod
228- def _broadcast_discover (cls , ip , message , request ):
228+ def _broadcast_discover (cls , ip , message , request , broadcast_address = "255.255.255.255" ):
229229 devices = []
230230 try :
231231 sock = socket .socket (socket .AF_INET , socket .SOCK_DGRAM )
@@ -234,7 +234,7 @@ def _broadcast_discover(cls, ip, message, request):
234234 if ip :
235235 sock .bind ((ip , 0 ))
236236
237- sock .sendto (message , ("255.255.255.255" , 44818 ))
237+ sock .sendto (message , (broadcast_address , 44818 ))
238238
239239 while True :
240240 try :
0 commit comments