Makaretu.Dns.Multicast The event data for or . The DNS message. The received message. The DNS message sender endpoint. The endpoint from the message was received. Determines if the sender is using legacy unicast DNS. false if the sender is using port 5353. Performs the magic to send and receive datagrams over multicast sockets. The port number assigned to Multicast DNS. Port number 5353. Muticast Domain Name Service. Sends and receives DNS queries and answers via the multicast mechachism defined in . Use to start listening for multicast messages. One of the events, or , is raised when a is received. Recently sent messages. Recently received messages. The multicast client. Use to send unicast IPv4 answers. Use to send unicast IPv6 answers. Function used for listening filtered network interfaces. Set the default TTLs. Raised when any local MDNS service sends a query. Contains the query . Any exception throw by the event handler is simply logged and then forgotten. Raised when any link-local MDNS service responds to a query. Contains the answer . Any exception throw by the event handler is simply logged and then forgotten. Raised when a DNS message is received that cannot be decoded. The DNS message as a byte array. Raised when one or more network interfaces are discovered. Contains the network interface(s). Create a new instance of the class. Multicast listener will be bound to result of filtering function. Send and receive on IPv4. Defaults to true if the OS supports it. Send and receive on IPv6. Defaults to true if the OS supports it. Determines if received messages are checked for duplicates. true to ignore duplicate messages. Defaults to true. When set, a message that has been received within the last minute will be ignored. The interval for discovering network interfaces. Default is 2 minutes. When the interval is reached a task is started to discover any new network interfaces. Get the network interfaces that are useable. A sequence of . The following filters are applied interface is enabled interface is not a loopback If no network interface is operational, then the loopback interface(s) are included (127.0.0.1 and/or ::1). Get the IP addresses of the local machine. A sequence of IP addresses of the local machine. The loopback addresses (127.0.0.1 and ::1) are NOT included in the returned sequences. Get the link local IP addresses of the local machine. A sequence of IP addresses. All IPv4 addresses are considered link local. Start the service. Stop the service. Clears all the event handlers. Ask for answers about a name. A domain name that should end with ".local", e.g. "myservice.local". The class, defaults to . The question type, defaults to . Answers to any query are obtained on the event. When the service has not started. Ask for answers about a name and accept unicast and/or broadcast response. A domain name that should end with ".local", e.g. "myservice.local". The class, defaults to . The question type, defaults to . Send a "QU" question (unicast). The most significat bit of the Class is set. Answers to any query are obtained on the event. When the service has not started. Ask for answers. A query message. Answers to any query are obtained on the event. When the service has not started. When the serialised is too large. Send an answer to a query. The answer message. If true, then if the same was recently sent it will not be sent again. When the service has not started. When the serialised is too large. The flag is set to true, the set to zero and any questions are removed. The is truncated if exceeds the maximum packet length. should always be true except when answering a probe. If possible the method should be used, so that legacy unicast queries are supported. Send an answer to a query. The answer message. The query that is being answered. If true, then if the same was recently sent it will not be sent again. When the service has not started. When the serialised is too large. If the is a standard multicast query (sent to port 5353), then is called. Otherwise a legacy unicast reponse is sent to sender's end point. The flag is set to true, the is set to query's ID, the is set to the query's questions, and all resource record TTLs have a max value of 10 seconds. The is truncated if exceeds the maximum packet length. should always be true except when answering a probe. Called by the MulticastClient when a DNS message is received. The that got the message. The received message . Decodes the and then raises either the or event. Multicast DNS messages received with an OPCODE or RCODE other than zero are silently ignored. If the message cannot be decoded, then the event is raised. The event data for . The sequece of detected network interfaces. A sequence of network interfaces. Maintains a sequence of recent messages. RecentMessages is used to determine if a message has already been processed within the specified . Recent messages. The key is the Base64 encoding of the MD5 hash of a message and the value is when the message was seen. The time interval used to determine if a message is recent. Try adding a message to the recent message list. The binary representation of a message. true if the message, did not already exist; otherwise, false the message exists within the . Remove any messages that are stale. The number messages that were pruned. Anything older than an ago is removed. Gets a unique ID for a message. The binary representation of a message. The Base64 encoding of the MD5 hash of the . DNS based Service Discovery is a way of using standard DNS programming interfaces, servers, and packet formats to browse the network for services. RFC 6763 DNS-Based Service Discovery The service discovery service name. The service name used to enumerate other services. Creates a new instance of the class. Creates a new instance of the class with the specified . The underlaying to use. Gets the multicasting service. Is used to send and recieve multicast DNS messages. Add the additional records into the answers. Defaults to false. Some malformed systems, such as js-ipfs and go-ipfs, only examine the and not the . Setting this to true, will move the additional records into the answers. This never done for DNS-SD answers. Gets the name server. Is used to answer questions. Raised when a DNS-SD response is received. Contains the service name. ServiceDiscovery passively monitors the network for any answers to a DNS-SD query. When an anwser is received this event is raised. Use to initiate a DNS-SD question. Raised when a servive instance is discovered. Contains the service instance name. ServiceDiscovery passively monitors the network for any answers. When an answer containing a PTR to a service instance is received this event is raised. Raised when a servive instance is shutting down. Contains the service instance name. ServiceDiscovery passively monitors the network for any answers. When an answer containing a PTR to a service instance with a TTL of zero is received this event is raised. Asks other MDNS services to send their service names. When an answer is received the event is raised. Asks other MDNS services to send their service names; accepts unicast and/or broadcast answers. When an answer is received the event is raised. Asks instances of the specified service to send details. The service name to query. Typically of the form "_service._tcp". When an answer is received the event is raised. Asks instances of the specified service with the subtype to send details. The service name to query. Typically of the form "_service._tcp". The feature that is needed. When an answer is received the event is raised. Asks instances of the specified service to send details. accepts unicast and/or broadcast answers. The service name to query. Typically of the form "_service._tcp". When an answer is received the event is raised. Advertise a service profile. The service profile. Any queries for the service or service instance will be answered with information from the profile. Besides adding the profile's resource records to the PTR records are created to support DNS-SD and reverse address mapping (DNS address lookup). Sends an unsolicited MDNS response describing the service profile. The profile to describe. Sends a MDNS response containing the pointer and resource records of the . To provide increased robustness against packet loss, two unsolicited responses are sent one second apart. Sends a goodbye message for the provided profile and removes its pointer from the name sever. The profile to send a goodbye message for. Sends a goodbye message for each anounced service. The event data for . The fully qualified name of the service instance. Typically of the form "instance._service._tcp.local". The event data for . The fully qualified name of the service instance. Typically of the form "instance._service._tcp.local". Defines a specific service that can be discovered. Creates a new instance of the class. All details must be filled in by the caller, especially the . Creates a new instance of the class with the specified details. A unique identifier for the specific service instance. The name of the service. The TCP/UDP port of the service. The IP addresses of the specific service instance. If null then is used. The SRV, TXT and A/AAAA resoruce records are added to the . The top level domain (TLD) name of the service. Always "local". A unique name for the service. Typically of the form "_service._tcp". It consists of a pair of DNS labels, following the SRV records convention. The first label of the pair is an underscore character (_) followed by the service name. The second label is either "_tcp" (for application protocols that run over TCP) or "_udp" (for all others). A unique identifier for the service instance. Some unique value. The service name and domain. Typically of the form "_service._tcp.local". The fully qualified name of the instance's host. This can be used to query the address records (A and AAAA) of the service instance. The instance name, service name and domain. .. DNS resource records that are used to locate the service instance. More infomation about the service. All records should have the equal to the or the . At a minimum the and records must be present. Typically address records are also present and are associaed with . A list of service features implemented by the service instance. The default is an empty list. Add a property of the service to the . The name of the property. The value of the property.