code: def get_alert_destination(self, destination=0, channel=None):
          
          destinfo = {}
          if channel is None:
              channel = self.get_network_channel()
          rqdata = (channel, 18, destination, 0)
          rsp = self.xraw_command(netfn=0xc, command=2, data=rqdata)
          dtype, acktimeout, retries = struct.unpack('BBB', rsp['data'][2:])
          destinfo['acknowledge_required'] = dtype & 0b10000000 == 0b10000000
          # Ignore destination type for now...
          if destinfo['acknowledge_required']:
              destinfo['acknowledge_timeout'] = acktimeout
          destinfo['retries'] = retries
          rqdata = (channel, 19, destination, 0)
          rsp = self.xraw_command(netfn=0xc, command=2, data=rqdata)
          if ord(rsp['data'][2]) & 0b11110000 == 0:
              destinfo['address_format'] = 'ipv4'
              destinfo['address'] = socket.inet_ntoa(rsp['data'][4:8])
          elif ord(rsp['data'][2]) & 0b11110000 == 0b10000:
              destinfo['address_format'] = 'ipv6'
              destinfo['address'] = socket.inet_ntop(socket.AF_INET6,
                                                     rsp['data'][3:])
          return destinfo
docs: Get alert destination
  
          Get a specified alert destination.  Returns a dictionary of relevant
          configuration.  The following keys may be present:
          acknowledge_required - Indicates whether the target expects an
                                 acknowledgement
          acknowledge_timeout - How long it will wait for an acknowledgment
                                    before retrying
          retries - How many attempts will be made to deliver the alert to this
                    destination
          address_format - 'ipv4' or 'ipv6'
          address - The IP address of the target
  
          :param destination:  The destination number.  Defaults to 0
          :param channel: The channel for alerting.  Defaults to current channel