2017 © Pedro Peláez
 

library dns

The Hoa\Dns library.

image

hoa/dns

The Hoa\Dns library.

  • Tuesday, January 10, 2017
  • by Hoa
  • Repository
  • 12 Watchers
  • 22 Stars
  • 162 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 7 Forks
  • 0 Open issues
  • 12 Versions
  • 0 % Grown

The README.md

Hoa , (*1)


Build status Code coverage Packagist License , (*2)

Hoa is a modular, extensible and structured set of PHP libraries.
Moreover, Hoa aims at being a bridge between industrial and research worlds. , (*3)

Hoa\Dns

Help on IRC Help on Gitter Documentation Board, (*4)

This library allows to create a domain name resolver., (*5)

Learn more., (*6)

Installation

With Composer, to include this library into your dependencies, you need to require hoa/dns:, (*7)

$ composer require hoa/dns '~3.0'

For more installation procedures, please read the Source page., (*8)

Testing

Before running the test suites, the development dependencies must be installed:, (*9)

$ composer install

Then, to run all the test suites:, (*10)

$ vendor/bin/hoa test:run

For more information, please read the contributor guide., (*11)

Quick usage

As a quick overview, we propose to create our own resolution server for the top level domain .hoa. We start by modifying the local resolver in order to add a new resolution host: ours., (*12)

Specify a resolution server

On Mac OS X, the simplest way is to write in /etc/resolver/hoa the following declarations:, (*13)

nameserver 127.0.0.1
port 57005

On Linux, we will use DNSMasq (often already installed). Then, we edit the file /etc/dnsmasq.conf by adding:, (*14)

server=/hoa/127.0.0.1#57005

And do not forget to restart:, (*15)

$ sudo /etc/init.d/dnsmasq restart
 * Restarting DNS forwarder and DHCP server dnsmasq    [OK]

For Windows, it is more complicated. You should read the documentation., (*16)

Create a resolution server

Well, now, we will create our resolution server that will listen 127.0.0.1:57005 (57005 = 0xDEAD) in UDP. Thus, in the Resolution.php file:, (*17)

$dns = new Hoa\Dns\Resolver(
    new Hoa\Socket\Server('udp://127.0.0.1:57005')
);
$dns->on('query', function (Hoa\Event\Bucket $bucket) {
    $data = $bucket->getData();

    echo
        'Resolving domain ', $data['domain'],
        ' of type ', $data['type'], "\n";

    return '127.0.0.1';
});
$dns->run();

All query for the top level domain .hoa will be resolved to 127.0.0.1 (note: we do not look at the type, which should be A or AAAA respectively for IPv4 and IPv6)., (*18)

Finally, let say we have a HTTP server that runs on 127.0.0.1:8888 and the index responds yeah \o/, then we start our resolver:, (*19)

$ php Resolver.php

And we make an HTTP request on foo.hoa (that will be resolve to 127.0.0.1):, (*20)

$ curl foo.hoa --verbose
* About to connect() to foo.hoa port 80 (#0)
*   Trying 127.0.0.1... connected
* Connected to foo.hoa (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/a.b.c (…) libcurl/d.e.f
> OpenSSL/g.h.i zlib/j.k.l
> Host: foo.hoa:80
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: …
< Server: …
< Content-Type: text/html
< Content-Length: 8
<
yeah \o/
* Connection #0 to host foo.hoa left intact
* Closing connection #0

We see that foo.hoa is resolved to 127.0.0.1!, (*21)

Documentation

The hack book of Hoa\Dns contains detailed information about how to use this library and how it works., (*22)

To generate the documentation locally, execute the following commands:, (*23)

$ composer require --dev hoa/devtools
$ vendor/bin/hoa devtools:documentation --open

More documentation can be found on the project's website: hoa-project.net., (*24)

Getting help

There are mainly two ways to get help:, (*25)

Contribution

Do you want to contribute? Thanks! A detailed contributor guide explains everything you need to know., (*26)

License

Hoa is under the New BSD License (BSD-3-Clause). Please, see LICENSE for details., (*27)

The following projects are using this library:, (*28)

  • ec2dns, ec2dns is a set of command line tools that makes it easy to display public hostnames of EC2 instances and ssh into them via their tag name.

The Versions

10/01 2017

dev-master

9999999-dev https://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

domain library name dns resolve

10/01 2017

3.17.01.10

3.17.01.10 https://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

domain library name dns resolve

11/01 2016

3.16.01.11

3.16.01.11 http://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

domain library name dns resolve

09/11 2015

2.15.11.09

2.15.11.09 http://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

domain library name dns resolve

29/05 2015

2.15.05.29

2.15.05.29 http://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

domain library name dns resolve

19/02 2015

2.15.02.19

2.15.02.19 http://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

domain library name dns resolve

09/12 2014

2.14.12.10

2.14.12.10 http://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

domain library name dns resolve

25/11 2014

2.14.11.26

2.14.11.26 http://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

domain library name dns resolve

06/10 2014

2.14.11.09

2.14.11.09 http://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

domain library name dns resolve

23/09 2014

2.14.09.23

2.14.09.23 http://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

domain library name dns resolve

17/09 2014

2.14.09.17

2.14.09.17 http://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

domain library name dns resolve

10/09 2014

1.14.09.16

1.14.09.16 http://hoa-project.net/

The Hoa\Dns library.

  Sources   Download

BSD-3-Clause

The Requires

 

domain library name dns resolve