---
name: "Zonemaster::Recursor"
section: "3pm"
platform: "linux"
package: "libzonemaster-perl"
version: "1.0.16-2.1"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/Zonemaster::Recursor"
---

# Zonemaster::Recursor(3pm)

recursive resolver for Zonemaster

## NAME

Zonemaster::Recursor - recursive resolver for Zonemaster

## SYNOPSIS

```
    my $packet = Zonemaster::Recursor->recurse($name, $type, $class);
    my $pname = Zonemaster::Recursor->parent('example.org');
```

## METHODS

- recurse($name, $type, $class)

  Does a recursive resolution from the root servers down for the given triplet.

- parent($name)

  Does a recursive resolution from the root down for the given name (using type `"SOA"` and class `"IN"`). If the resolution is successful, it returns the domain name of the second-to-last step. If the resolution is unsuccessful, it returns the domain name of the last step.

- get\_ns\_from($packet, $state)

  Internal method. Takes a packet and a recursion state and returns a list of ns objects. Used to follow redirections.

- get\_addresses\_for($name\[, $state\])

  Takes a name and returns a (possibly empty) list of IP addresses for that name (in the form of Zonemaster::Net::IP objects). When used internally by the recursor it's passed a recursion state as its second argument.

- **clear\_cache()**

  Class method to empty the cache of responses to recursive queries.

- **root\_servers()**

  Returns a list of ns objects representing the root servers. The list of root servers is hardcoded into this module.
