network-dns-1.1.0.2: Domain Name System data structures
Safe HaskellSafe-Inferred
LanguageHaskell2010

Network.DNS

Description

This module provides Domain Name System data structures and (de)serialization routines.

Synopsis

Documentation

data HostName Source #

Host name.

Instances

Instances details
Read HostName Source # 
Instance details

Defined in Network.DNS

Show HostName Source # 
Instance details

Defined in Network.DNS

Printable HostName Source # 
Instance details

Defined in Network.DNS

Methods

print :: Printer p => HostName -> p #

Textual HostName Source # 
Instance details

Defined in Network.DNS

Methods

textual :: (Monad μ, CharParsing μ) => μ HostName #

Eq HostName Source # 
Instance details

Defined in Network.DNS

Ord HostName Source # 
Instance details

Defined in Network.DNS

Hashable HostName Source # 
Instance details

Defined in Network.DNS

Methods

hashWithSalt :: Int -> HostName -> Int #

hash :: HostName -> Int #

Printable (InetAddr HostName) Source # 
Instance details

Defined in Network.DNS

Methods

print :: Printer p => InetAddr HostName -> p #

Textual (InetAddr HostName) Source # 
Instance details

Defined in Network.DNS

Methods

textual :: (Monad μ, CharParsing μ) => μ (InetAddr HostName) #

hostNameLabels :: HostName -> [ByteString] Source #

List the HostName labels:

  hostNameLabels (fromJust (fromString "www.google.com")) = ["www", "google", "com"]

arpaHostName :: IP -> HostName Source #

Host name for reverse DNS lookups.

  toString (arpaHostName (IPv4 (ip4FromOctets 1 2 3 4))) = "4.3.2.1.in-addr.arpa"
  toString (arpaHostName (IPv6 (ip6FromWords 1 2 3 4 5 6 7 8))) = "8.0.0.0.7.0.0.0.6.0.0.0.5.0.0.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.ip6.arpa"

data HostAddr a Source #

Host address. Either a host name or an IP address.

Constructors

HostName !HostName 
HostAddr !a 

Instances

Instances details
Read a => Read (HostAddr a) Source # 
Instance details

Defined in Network.DNS

Show a => Show (HostAddr a) Source # 
Instance details

Defined in Network.DNS

Methods

showsPrec :: Int -> HostAddr a -> ShowS #

show :: HostAddr a -> String #

showList :: [HostAddr a] -> ShowS #

Printable a => Printable (HostAddr a) Source # 
Instance details

Defined in Network.DNS

Methods

print :: Printer p => HostAddr a -> p #

Printable (InetAddr a) => Printable (InetAddr (HostAddr a)) Source # 
Instance details

Defined in Network.DNS

Methods

print :: Printer p => InetAddr (HostAddr a) -> p #

Textual a => Textual (HostAddr a) Source # 
Instance details

Defined in Network.DNS

Methods

textual :: (Monad μ, CharParsing μ) => μ (HostAddr a) #

Textual (InetAddr a) => Textual (InetAddr (HostAddr a)) Source # 
Instance details

Defined in Network.DNS

Methods

textual :: (Monad μ, CharParsing μ) => μ (InetAddr (HostAddr a)) #

Eq a => Eq (HostAddr a) Source # 
Instance details

Defined in Network.DNS

Methods

(==) :: HostAddr a -> HostAddr a -> Bool #

(/=) :: HostAddr a -> HostAddr a -> Bool #

Ord a => Ord (HostAddr a) Source # 
Instance details

Defined in Network.DNS

Methods

compare :: HostAddr a -> HostAddr a -> Ordering #

(<) :: HostAddr a -> HostAddr a -> Bool #

(<=) :: HostAddr a -> HostAddr a -> Bool #

(>) :: HostAddr a -> HostAddr a -> Bool #

(>=) :: HostAddr a -> HostAddr a -> Bool #

max :: HostAddr a -> HostAddr a -> HostAddr a #

min :: HostAddr a -> HostAddr a -> HostAddr a #

aHostAddrOf :: Proxy a -> Proxy (HostAddr a) Source #

HostAddr a proxy value.

type DnsId = Word16 Source #

Message identifier.

data DnsType α where Source #

Resource Record type.

Instances

Instances details
Show (DnsType α) Source # 
Instance details

Defined in Network.DNS

Methods

showsPrec :: Int -> DnsType α -> ShowS #

show :: DnsType α -> String #

showList :: [DnsType α] -> ShowS #

Eq (DnsType α) Source # 
Instance details

Defined in Network.DNS

Methods

(==) :: DnsType α -> DnsType α -> Bool #

(/=) :: DnsType α -> DnsType α -> Bool #

dnsTypeCode :: DnsType α -> Word16 Source #

Numeric representation of a Resource Record type.

data DnsData Source #

Resource Record data.

Constructors

forall α. DnsData 

Fields

Instances

Instances details
Show DnsData Source # 
Instance details

Defined in Network.DNS

data DnsRecord Source #

Resource Record.

Constructors

DnsRecord 

Fields

Instances

Instances details
Show DnsRecord Source # 
Instance details

Defined in Network.DNS

data DnsQType Source #

DNS query type.

Constructors

forall α. StdDnsType (DnsType α)

Record type

AllDnsType

All record types

Instances

Instances details
Show DnsQType Source # 
Instance details

Defined in Network.DNS

Deserializable DnsQType Source # 
Instance details

Defined in Network.DNS

Methods

get :: Deserializer μ => μ DnsQType #

Serializable DnsQType Source # 
Instance details

Defined in Network.DNS

Methods

put :: Serializer s => DnsQType -> s #

SizedSerializable DnsQType Source # 
Instance details

Defined in Network.DNS

Methods

size :: Proxy DnsQType -> Int #

Eq DnsQType Source # 
Instance details

Defined in Network.DNS

Ord DnsQType Source # 
Instance details

Defined in Network.DNS

dnsQTypeCode :: DnsQType -> Word16 Source #

Numeric representation of a DNS query type.

data DnsQuestion Source #

DNS question.

Constructors

DnsQuestion 

Fields

data DnsReq Source #

Request message.

Constructors

DnsReq

Standard query

Fields

DnsInvReq

Inverse query

Fields

Instances

Instances details
Show DnsReq Source # 
Instance details

Defined in Network.DNS

Deserializable DnsReq Source # 
Instance details

Defined in Network.DNS

Methods

get :: Deserializer μ => μ DnsReq #

Serializable DnsReq Source # 
Instance details

Defined in Network.DNS

Methods

put :: Serializer s => DnsReq -> s #

data DnsError Source #

Errors returned in responses.

data DnsResp Source #

Response message.

Constructors

DnsResp

Normal response.

Fields

DnsErrResp

Error response.

Fields

Instances

Instances details
Show DnsResp Source # 
Instance details

Defined in Network.DNS

Deserializable DnsResp Source # 
Instance details

Defined in Network.DNS

Methods

get :: Deserializer μ => μ DnsResp #

Serializable DnsResp Source # 
Instance details

Defined in Network.DNS

Methods

put :: Serializer s => DnsResp -> s #