Skip to content
This repository has been archived by the owner on Mar 12, 2020. It is now read-only.

phergie/plugin-dns

Repository files navigation

DNS Plugin

Phergie plugin for Looking up IP's by hostnames.

Build Status

Install

To install via Composer, use the command below, it will automatically detect the latest version and bind it with ~.

composer require phergie/phergie-irc-plugin-dns 

See Phergie documentation for more information on installing and enabling plugins.

Configuration

new \Phergie\Plugin\Dns\Plugin([

    // All configuration is optional

    'dnsServer' => '1.2.3.4', // IP address of a DNS server, defaults to Google's 8.8.8.8

    // or

    'command' => 'customDns', // command name, defaults to dns

    // or

    'resolver' => new React\Dns\Resolver\Resolver(), // provide your own Resolver instance
                                                     // defaults to null and is set at first use
                                                     // (don't use this unless you know what you are doing!)

    // or

    'enableCommand' => false,  // enable use access to the dns command
])

Events

This plugin listens on a few events providing the resolver to other plugins that wish to make use of it.

dns.resolve

The dns.resolve event accepts a callback that will be called with a Promise that will resolve once the given hostname has been resolved. (If promises are new to you, be sure to read this.)

$this->emitter->emit('dns.resolve', [function($promise) use ($callback, $that) {
    $promise->then(function($ip) {
        echo 'IP for github.com: ' . $ip . PHP_EOL;
    });
}]);

dns.resolver

The dns.resolver event accepts a callback that will be called once a Resolver instance has been created.

$this->emitter->emit('dns.resolver', [function($resolver) use ($callback, $that) {
    $resolver->resolve('github.com')->then(function($ip) {
        echo 'IP for github.com: ' . $ip . PHP_EOL;
    });
}]);

Tests

To run the unit test suite:

curl -s https://getcomposer.org/installer | php
php composer.phar install
cd tests
../vendor/bin/phpunit

License

Released under the MIT License. See LICENSE.