---
title: dnssd
framework: dnssd
role: collection
role_heading: Framework
path: dnssd
---

# dnssd

Discover, publish, and resolve network services on a local area or wide area network.

## Overview

Overview The DNS Service Discovery API helps you to perform three main tasks: Registering a service. Browsing for services. Resolving service names to host names. In support of these main tasks, this API can directly assist you in performing two subsidiary tasks: Enumerating domains (finding recommended service domains). Updating registrations (changing your DNS registration data dynamically). Most apps shouldn’t use this API, and instead should use a higher-level service discovery API like NetService. Use dnssd if you’re writing BSD-style applications or cross-platform programs that don’t need to link to higher-level frameworks. You can also use dnssd if you need specific lower-level functionality exposed by this API. important: Apps that use the local network must provide a usage string in their Info.plist file with the key NSLocalNetworkUsageDescription. Apps that use Bonjour must also declare the services they browse, using the NSBonjourServices key.

## Topics

### Reference

- [DNS Service Discovery C](dnssd/dns-service-discovery-c.md)
- [dnssd Enumerations](dnssd/dnssd-enumerations.md)
- [dnssd Functions](dnssd/dnssd-functions.md)
- [dnssd Data Types](dnssd/dnssd-data-types.md)
- [dnssd Constants](dnssd/dnssd-constants.md)

### Variables

- [kDNSServiceAAAAPolicyFallback](dnssd/kdnsserviceaaaapolicyfallback.md)
- [kDNSServiceAAAAPolicyNone](dnssd/kdnsserviceaaaapolicynone.md)
- [kDNSServiceClass_IN](dnssd/kdnsserviceclass_in.md)
- [kDNSServiceErr_AWDLTimeout](dnssd/kdnsserviceerr_awdltimeout.md)
- [kDNSServiceErr_AlreadyRegistered](dnssd/kdnsserviceerr_alreadyregistered.md)
- [kDNSServiceErr_BadFlags](dnssd/kdnsserviceerr_badflags.md)
- [kDNSServiceErr_BadInterfaceIndex](dnssd/kdnsserviceerr_badinterfaceindex.md)
- [kDNSServiceErr_BadKey](dnssd/kdnsserviceerr_badkey.md)
- [kDNSServiceErr_BadParam](dnssd/kdnsserviceerr_badparam.md)
- [kDNSServiceErr_BadReference](dnssd/kdnsserviceerr_badreference.md)
- [kDNSServiceErr_BadSig](dnssd/kdnsserviceerr_badsig.md)
- [kDNSServiceErr_BadState](dnssd/kdnsserviceerr_badstate.md)
- [kDNSServiceErr_BadTime](dnssd/kdnsserviceerr_badtime.md)
- [kDNSServiceErr_DefunctConnection](dnssd/kdnsserviceerr_defunctconnection.md)
- [kDNSServiceErr_DoubleNAT](dnssd/kdnsserviceerr_doublenat.md)
- [kDNSServiceErr_Firewall](dnssd/kdnsserviceerr_firewall.md)
- [kDNSServiceErr_Incompatible](dnssd/kdnsserviceerr_incompatible.md)
- [kDNSServiceErr_Invalid](dnssd/kdnsserviceerr_invalid.md)
- [kDNSServiceErr_NATPortMappingDisabled](dnssd/kdnsserviceerr_natportmappingdisabled.md)
- [kDNSServiceErr_NATPortMappingUnsupported](dnssd/kdnsserviceerr_natportmappingunsupported.md)
- [kDNSServiceErr_NATTraversal](dnssd/kdnsserviceerr_nattraversal.md)
- [kDNSServiceErr_NameConflict](dnssd/kdnsserviceerr_nameconflict.md)
- [kDNSServiceErr_NoAuth](dnssd/kdnsserviceerr_noauth.md)
- [kDNSServiceErr_NoError](dnssd/kdnsserviceerr_noerror.md)
- [kDNSServiceErr_NoMemory](dnssd/kdnsserviceerr_nomemory.md)
- [kDNSServiceErr_NoRouter](dnssd/kdnsserviceerr_norouter.md)
- [kDNSServiceErr_NoSuchKey](dnssd/kdnsserviceerr_nosuchkey.md)
- [kDNSServiceErr_NoSuchName](dnssd/kdnsserviceerr_nosuchname.md)
- [kDNSServiceErr_NoSuchRecord](dnssd/kdnsserviceerr_nosuchrecord.md)
- [kDNSServiceErr_NotInitialized](dnssd/kdnsserviceerr_notinitialized.md)
- [kDNSServiceErr_NotPermitted](dnssd/kdnsserviceerr_notpermitted.md)
- [kDNSServiceErr_PolicyDenied](dnssd/kdnsserviceerr_policydenied.md)
- [kDNSServiceErr_PollingMode](dnssd/kdnsserviceerr_pollingmode.md)
- [kDNSServiceErr_Refused](dnssd/kdnsserviceerr_refused.md)
- [kDNSServiceErr_ServiceNotRunning](dnssd/kdnsserviceerr_servicenotrunning.md)
- [kDNSServiceErr_StaleData](dnssd/kdnsserviceerr_staledata.md)
- [kDNSServiceErr_Timeout](dnssd/kdnsserviceerr_timeout.md)
- [kDNSServiceErr_Transient](dnssd/kdnsserviceerr_transient.md)
- [kDNSServiceErr_Unknown](dnssd/kdnsserviceerr_unknown.md)
- [kDNSServiceErr_Unsupported](dnssd/kdnsserviceerr_unsupported.md)
- [kDNSServiceFlagAnsweredFromCache](dnssd/kdnsserviceflagansweredfromcache.md)
- [kDNSServiceFlagsAdd](dnssd/kdnsserviceflagsadd.md)
- [kDNSServiceFlagsAllowExpiredAnswers](dnssd/kdnsserviceflagsallowexpiredanswers.md)
- [kDNSServiceFlagsAllowRemoteQuery](dnssd/kdnsserviceflagsallowremotequery.md)
- [kDNSServiceFlagsAutoTrigger](dnssd/kdnsserviceflagsautotrigger.md)
- [kDNSServiceFlagsBackgroundTrafficClass](dnssd/kdnsserviceflagsbackgroundtrafficclass.md)
- [kDNSServiceFlagsBogus](dnssd/kdnsserviceflagsbogus.md)
- [kDNSServiceFlagsBrowseDomains](dnssd/kdnsserviceflagsbrowsedomains.md)
- [kDNSServiceFlagsDefault](dnssd/kdnsserviceflagsdefault.md)
- [kDNSServiceFlagsEnableDNSSEC](dnssd/kdnsserviceflagsenablednssec.md)
- [kDNSServiceFlagsExpiredAnswer](dnssd/kdnsserviceflagsexpiredanswer.md)
- [kDNSServiceFlagsForce](dnssd/kdnsserviceflagsforce.md)
- [kDNSServiceFlagsForceMulticast](dnssd/kdnsserviceflagsforcemulticast.md)
- [kDNSServiceFlagsIncludeAWDL](dnssd/kdnsserviceflagsincludeawdl.md)
- [kDNSServiceFlagsIncludeP2P](dnssd/kdnsserviceflagsincludep2p.md)
- [kDNSServiceFlagsIndeterminate](dnssd/kdnsserviceflagsindeterminate.md)
- [kDNSServiceFlagsInsecure](dnssd/kdnsserviceflagsinsecure.md)
- [kDNSServiceFlagsKnownUnique](dnssd/kdnsserviceflagsknownunique.md)
- [kDNSServiceFlagsLongLivedQuery](dnssd/kdnsserviceflagslonglivedquery.md)
- [kDNSServiceFlagsMoreComing](dnssd/kdnsserviceflagsmorecoming.md)
- [kDNSServiceFlagsNoAutoRename](dnssd/kdnsserviceflagsnoautorename.md)
- [kDNSServiceFlagsPrivateFive](dnssd/kdnsserviceflagsprivatefive.md)
- [kDNSServiceFlagsPrivateFour](dnssd/kdnsserviceflagsprivatefour.md)
- [kDNSServiceFlagsPrivateOne](dnssd/kdnsserviceflagsprivateone.md)
- [kDNSServiceFlagsPrivateThree](dnssd/kdnsserviceflagsprivatethree.md)
- [kDNSServiceFlagsPrivateTwo](dnssd/kdnsserviceflagsprivatetwo.md)
- [kDNSServiceFlagsQueueRequest](dnssd/kdnsserviceflagsqueuerequest.md)
- [kDNSServiceFlagsRegistrationDomains](dnssd/kdnsserviceflagsregistrationdomains.md)
- [kDNSServiceFlagsReturnIntermediates](dnssd/kdnsserviceflagsreturnintermediates.md)
- [kDNSServiceFlagsSecure](dnssd/kdnsserviceflagssecure.md)
- [kDNSServiceFlagsShareConnection](dnssd/kdnsserviceflagsshareconnection.md)
- [kDNSServiceFlagsShared](dnssd/kdnsserviceflagsshared.md)
- [kDNSServiceFlagsSuppressUnusable](dnssd/kdnsserviceflagssuppressunusable.md)
- [kDNSServiceFlagsThresholdFinder](dnssd/kdnsserviceflagsthresholdfinder.md)
- [kDNSServiceFlagsThresholdOne](dnssd/kdnsserviceflagsthresholdone.md)
- [kDNSServiceFlagsThresholdReached](dnssd/kdnsserviceflagsthresholdreached.md)
- [kDNSServiceFlagsTimeout](dnssd/kdnsserviceflagstimeout.md)
- [kDNSServiceFlagsUnicastResponse](dnssd/kdnsserviceflagsunicastresponse.md)
- [kDNSServiceFlagsUnique](dnssd/kdnsserviceflagsunique.md)
- [kDNSServiceFlagsValidate](dnssd/kdnsserviceflagsvalidate.md)
- [kDNSServiceFlagsValidateOptional](dnssd/kdnsserviceflagsvalidateoptional.md)
- [kDNSServiceFlagsWakeOnResolve](dnssd/kdnsserviceflagswakeonresolve.md)
- [kDNSServiceFlagsWakeOnlyService](dnssd/kdnsserviceflagswakeonlyservice.md)
- [kDNSServiceProtocol_IPv4](dnssd/kdnsserviceprotocol_ipv4.md)
- [kDNSServiceProtocol_IPv6](dnssd/kdnsserviceprotocol_ipv6.md)
- [kDNSServiceProtocol_TCP](dnssd/kdnsserviceprotocol_tcp.md)
- [kDNSServiceProtocol_UDP](dnssd/kdnsserviceprotocol_udp.md)
- [kDNSServiceType_A](dnssd/kdnsservicetype_a.md)
- [kDNSServiceType_A6](dnssd/kdnsservicetype_a6.md)
- [kDNSServiceType_AAAA](dnssd/kdnsservicetype_aaaa.md)
- [kDNSServiceType_AFSDB](dnssd/kdnsservicetype_afsdb.md)
- [kDNSServiceType_ANY](dnssd/kdnsservicetype_any.md)
- [kDNSServiceType_APL](dnssd/kdnsservicetype_apl.md)
- [kDNSServiceType_ATMA](dnssd/kdnsservicetype_atma.md)
- [kDNSServiceType_AXFR](dnssd/kdnsservicetype_axfr.md)
- [kDNSServiceType_CERT](dnssd/kdnsservicetype_cert.md)
- [kDNSServiceType_CNAME](dnssd/kdnsservicetype_cname.md)
- [kDNSServiceType_DHCID](dnssd/kdnsservicetype_dhcid.md)
- [kDNSServiceType_DNAME](dnssd/kdnsservicetype_dname.md)
- [kDNSServiceType_DNSKEY](dnssd/kdnsservicetype_dnskey.md)
- [kDNSServiceType_DS](dnssd/kdnsservicetype_ds.md)
- [kDNSServiceType_EID](dnssd/kdnsservicetype_eid.md)
- [kDNSServiceType_GID](dnssd/kdnsservicetype_gid.md)
- [kDNSServiceType_GPOS](dnssd/kdnsservicetype_gpos.md)
- [kDNSServiceType_HINFO](dnssd/kdnsservicetype_hinfo.md)
- [kDNSServiceType_HIP](dnssd/kdnsservicetype_hip.md)
- [kDNSServiceType_HTTPS](dnssd/kdnsservicetype_https.md)
- [kDNSServiceType_IPSECKEY](dnssd/kdnsservicetype_ipseckey.md)
- [kDNSServiceType_ISDN](dnssd/kdnsservicetype_isdn.md)
- [kDNSServiceType_IXFR](dnssd/kdnsservicetype_ixfr.md)
- [kDNSServiceType_KEY](dnssd/kdnsservicetype_key.md)
- [kDNSServiceType_KX](dnssd/kdnsservicetype_kx.md)
- [kDNSServiceType_LOC](dnssd/kdnsservicetype_loc.md)
- [kDNSServiceType_MAILA](dnssd/kdnsservicetype_maila.md)
- [kDNSServiceType_MAILB](dnssd/kdnsservicetype_mailb.md)
- [kDNSServiceType_MB](dnssd/kdnsservicetype_mb.md)
- [kDNSServiceType_MD](dnssd/kdnsservicetype_md.md)
- [kDNSServiceType_MF](dnssd/kdnsservicetype_mf.md)
- [kDNSServiceType_MG](dnssd/kdnsservicetype_mg.md)
- [kDNSServiceType_MINFO](dnssd/kdnsservicetype_minfo.md)
- [kDNSServiceType_MR](dnssd/kdnsservicetype_mr.md)
- [kDNSServiceType_MX](dnssd/kdnsservicetype_mx.md)
- [kDNSServiceType_NAPTR](dnssd/kdnsservicetype_naptr.md)
- [kDNSServiceType_NIMLOC](dnssd/kdnsservicetype_nimloc.md)
- [kDNSServiceType_NS](dnssd/kdnsservicetype_ns.md)
- [kDNSServiceType_NSAP](dnssd/kdnsservicetype_nsap.md)
- [kDNSServiceType_NSAP_PTR](dnssd/kdnsservicetype_nsap_ptr.md)
- [kDNSServiceType_NSEC](dnssd/kdnsservicetype_nsec.md)
- [kDNSServiceType_NSEC3](dnssd/kdnsservicetype_nsec3.md)
- [kDNSServiceType_NSEC3PARAM](dnssd/kdnsservicetype_nsec3param.md)
- [kDNSServiceType_NULL](dnssd/kdnsservicetype_null.md)
- [kDNSServiceType_NXT](dnssd/kdnsservicetype_nxt.md)
- [kDNSServiceType_OPT](dnssd/kdnsservicetype_opt.md)
- [kDNSServiceType_PTR](dnssd/kdnsservicetype_ptr.md)
- [kDNSServiceType_PX](dnssd/kdnsservicetype_px.md)
- [kDNSServiceType_RP](dnssd/kdnsservicetype_rp.md)
- [kDNSServiceType_RRSIG](dnssd/kdnsservicetype_rrsig.md)
- [kDNSServiceType_RT](dnssd/kdnsservicetype_rt.md)
- [kDNSServiceType_SIG](dnssd/kdnsservicetype_sig.md)
- [kDNSServiceType_SINK](dnssd/kdnsservicetype_sink.md)
- [kDNSServiceType_SOA](dnssd/kdnsservicetype_soa.md)
- [kDNSServiceType_SPF](dnssd/kdnsservicetype_spf.md)
- [kDNSServiceType_SRV](dnssd/kdnsservicetype_srv.md)
- [kDNSServiceType_SSHFP](dnssd/kdnsservicetype_sshfp.md)
- [kDNSServiceType_SVCB](dnssd/kdnsservicetype_svcb.md)
- [kDNSServiceType_TKEY](dnssd/kdnsservicetype_tkey.md)
- [kDNSServiceType_TSIG](dnssd/kdnsservicetype_tsig.md)
- [kDNSServiceType_TXT](dnssd/kdnsservicetype_txt.md)
- [kDNSServiceType_UID](dnssd/kdnsservicetype_uid.md)
- [kDNSServiceType_UINFO](dnssd/kdnsservicetype_uinfo.md)
- [kDNSServiceType_UNSPEC](dnssd/kdnsservicetype_unspec.md)
- [kDNSServiceType_WKS](dnssd/kdnsservicetype_wks.md)
- [kDNSServiceType_X25](dnssd/kdnsservicetype_x25.md)
