SRV Lookup

Find the host and port a domain publishes for a service

Guide

An SRV lookup finds the hostname and port a domain publishes for a specific network service, such as SIP calling, XMPP chat, or a Minecraft server, along with the priority and weight used to pick between multiple targets.

What is an SRV record?

A Service (SRV) record, defined in RFC 2782, maps a service name to the host and port that actually run it. Unlike an A or CNAME record, an SRV record does not just point to a server - it also carries load-balancing and failover instructions in the same answer.

The record name always follows the pattern `_service._proto.domain`, where `service` is the application protocol (`sip`, `xmpp-client`, `minecraft`) and `proto` is the transport (`tcp` or `udp`). This underscore prefix keeps service labels from colliding with real hostnames.

  • Priority: lower numbers are tried first, exactly like MX priority
  • Weight: among records that share the same priority, higher weight gets a larger share of traffic
  • Port: the TCP or UDP port the service listens on, which can differ from the protocol default
  • Target: the hostname that actually runs the service, which must resolve via A/AAAA

SRV record syntax

A zone file entry for a SIP service over TLS looks like this:

  • _sip._tls.example.com. 3600 IN SRV 10 60 5061 sipserver.example.com.
  • _xmpp-client._tcp.example.com. 3600 IN SRV 5 0 5222 chat.example.com.
  • _minecraft._tcp.play.example.com. 3600 IN SRV 0 5 25565 mc1.example.com.

Reading the results of this lookup

This tool queries a fixed set of common service names under the domain you enter: `_http._tcp`, `_https._tcp`, `_ldap._tcp`, and `_sip._tcp`. Each result row shows the full queried name (for example `_sip._tcp.example.com`), the combined value string in `priority weight port target` order, and the priority as a separate field for sorting.

A domain with no SRV records for any of those four services returns an empty SRV section - that is expected for most websites, since SRV is mainly used by VoIP, chat, directory, and game infrastructure rather than plain HTTP hosting. To check a service not in that list (Minecraft, XMPP server-to-server, Matrix, LDAPS), query its exact `_service._proto` name with a general-purpose DNS tool.

FieldExampleMeaning
Name_sip._tcp.example.comThe service and protocol being queried, prefixed with underscores
Priority10Lower value is preferred; clients try it first
Weight60Relative share of traffic among same-priority targets
Port5060TCP/UDP port the service listens on
Targetsipserver.example.comHostname running the service; must resolve to an A/AAAA record

Real-world services that rely on SRV

SIP (Session Initiation Protocol) telephony and VoIP systems use `_sip._tcp`, `_sip._udp`, or `_sip._tls` so a single phone number or SIP URI can be routed to the correct call server without hardcoding an IP address.

XMPP (Jabber-based chat, including some federated instant messaging deployments) publishes `_xmpp-client._tcp` for client connections and `_xmpp-server._tcp` for server-to-server federation, letting a chat address like `user@example.com` resolve to the actual chat host.

Minecraft Java Edition servers use `_minecraft._tcp` so players can connect with a plain domain name (`play.example.com`) while the server itself runs on a non-default port, without exposing that port in the address players type.

Microsoft environments use SRV heavily for service discovery: Active Directory domain controllers publish `_ldap._tcp` and `_kerberos._tcp`, and Autodiscover for Exchange/Outlook can use `_autodiscover._tcp`.

Priority and weight in practice

When several SRV records share the lowest priority, weight decides how often each one is picked. A record with weight 60 next to one with weight 20 receives three times as much traffic on average, per the weighted-random selection RFC 2782 describes. A weight of 0 is valid and gives a target the smallest possible share of selection when it sits alongside higher-weight records at the same priority - not a strict last resort, just a very low probability of being picked.

If every record has priority 0 and weight 0, resolvers are free to pick any of them, which behaves like simple round-robin.

FAQ

Why does my domain show no SRV records at all?

Most websites never need one. SRV only matters for the specific services that look it up, such as SIP phones, XMPP clients, or game clients. A domain that only serves a website has no reason to publish any SRV record, and its absence is not a misconfiguration.

Can an SRV target point to a CNAME instead of a real hostname?

RFC 2782 says the target should resolve to address records directly. In practice several client implementations tolerate a CNAME hop, but relying on that is fragile - point SRV targets straight at an A/AAAA-backed hostname to avoid resolution issues on strict clients.

What does a port of 0 mean in an SRV record, and what about a target of "."?

A target of a single dot means the service is explicitly not available at this domain, which some setups use to advertise "we deliberately do not run this service" rather than leaving the name unresolvable. A port of 0 is unusual and generally signals a placeholder or misconfigured record rather than a real endpoint.

Do web browsers use SRV records for HTTPS?

No. Browsers resolve a website by its hostname directly (A/AAAA), not through an `_http._tcp` or `_https._tcp` SRV record, even though some DNS servers publish one. SRV for HTTP exists mainly for non-browser clients and internal service discovery, not for the address bar.

How is SRV different from a plain A record pointing to the same server?

An A record only gives an IP address on the default port for its protocol. SRV additionally specifies the exact port, plus priority and weight for choosing between several equally valid targets - information an A record has no field for.

Why do some SRV service names use _tcp and others _udp?

The protocol suffix matches how the service actually communicates. SIP commonly runs over both, so it is common to see `_sip._tcp` and `_sip._udp` (and `_sip._tls` for encrypted signaling) published side by side for the same domain, each with its own port and targets.

Related tools