SRV Record Lookup
Find Service (SRV) records specifying the location (hostname and port) of servers for specific services.
About SRV Records & Formatting
A Service (SRV) record points to the hostname and port of a specific service hosting application. They are widely used by services like SIP, XMPP, LDAP, and Microsoft Active Directory/Office 365.
_service._protocol.domain.com
Example:
_sip._tcp.example.com or _autodiscover._tcp.example.com
Fields: SRV records contain a Priority (lower is preferred), Weight (used to load balance records with the same priority), Port (the TCP/UDP port), and Target (the canonical hostname of the machine providing the service).
Our SRV Record Lookup queries service location records for any domain, returning the target host, port, priority and weight for services such as SIP, XMPP, Microsoft 365 autodiscover, LDAP and Minecraft. Use it to verify service discovery is correctly published.
What is an SRV Record?
SRV records use a distinctive naming pattern: _service._protocol.domain. For example _sip._tcp.example.com locates a SIP server, and _xmpp-client._tcp.example.com locates an XMPP chat server. The leading underscores prevent collisions with ordinary hostnames.
Each record carries four values: priority, weight, port and target. Priority works like MX preference — lower is tried first. Weight distributes load between records that share the same priority.
- Names both the host and the port for a specific service
- Uses the _service._protocol.domain naming convention
- Carries priority and weight for failover and load balancing
- Defined in RFC 2782
- Used by SIP, XMPP, LDAP, Kerberos, Microsoft 365 and many game servers
Why SRV Records Matter
They also expose infrastructure. Because the naming convention is standardised, anyone can enumerate which services a domain runs by querying a known list of service names — a standard step in reconnaissance.
- Clients cannot locate SIP, XMPP or Kerberos services without them
- Priority and weight give true failover and load distribution in DNS
- Microsoft 365 and Teams depend on specific SRV records
- A wrong port value fails silently and is hard to diagnose
- Standardised names let attackers enumerate your service inventory
How This SRV Record Lookup Works
- Validates the service name input against format and SSRF safety checks
- Queries DNS for records of type SRV at the supplied name
- Parses the priority, weight, port and target of each record
- Sorts the results by priority and then by weight
- Resolves each target hostname to confirm it points somewhere real
How to Use the SRV Record Lookup
- Enter the full service name, for example _sip._tcp.example.com
- Remember the underscores — they are part of the name, not decoration
- Run the lookup to query live DNS
- Review the target host and port for each record returned
- Confirm each target hostname resolves to a valid address
Understanding Your SRV Record Results
Each SRV record packs four values. Here is what each one controls:
| Field / Value | Meaning |
|---|---|
Priority |
Which record clients try first. The lowest number wins, exactly like MX preference. Use a higher number for backup servers. |
Weight |
Relative share of traffic among records that share a priority. A record with weight 20 receives roughly twice the connections of one with weight 10. Set to 0 when there is only one record at that priority. |
Port |
The TCP or UDP port the service listens on. This is the only DNS record type that carries a port, and a wrong value causes silent connection failures. |
Target |
The hostname running the service. It must have its own A or AAAA record. A single dot as the target means the service is explicitly unavailable at this domain. |
Service name |
The _service._protocol prefix identifies what the record is for. Common examples are _sip._tcp, _xmpp-client._tcp, _ldap._tcp and _autodiscover._tcp. |
Common Problems & How to Fix Them
Best Practices
- Use the exact _service._protocol.domain format, underscores included
- Always point the target at a hostname with its own A or AAAA record
- Give primary servers a lower priority number than backups
- Use weight to split load only between records at the same priority
- Set weight to 0 when a priority level has a single record
- Publish a target of "." to declare explicitly that a service is unavailable
- Verify the port against the service documentation, not from memory
Security Recommendations
- Remember SRV records are publicly enumerable and advertise exactly which services you run
- Do not publish SRV records for internal-only services in public DNS — use split-horizon DNS instead
- Avoid target hostnames that reveal internal naming schemes or server roles
- Confirm services named in SRV records are themselves hardened, since the record is effectively an invitation to connect
- Enable DNSSEC so SRV answers cannot be forged to redirect clients to an attacker-controlled host
- Remove SRV records for decommissioned services, since a dangling target is a takeover opportunity