obf/net-dns

The Opsbears Framework Networking DNS Components

1.1.0 2016-04-04 16:12 UTC

This package is not auto-updated.

Last update: 2020-06-12 18:41:46 UTC


README

Installation

Using composer

To pull in net-dns with all dependencies, run:

composer require obf/net-dns

Manually

To manually install all dependencies, you will need the following OBF packages:

  • obf/classloader
  • obf/foundation
  • obf/net

To include the autoloader, include autoload.php.

Usage

All DNS functions are included in the OBF\Net\DNS\DNS class. Usage is simple:

<?php

use OBF\Net\DNS\DNS;

$records = DNS::lookup('example.com', DNS::TYPE_A);

Keep in mind that DNS lookups may return more than one record. If you just want to lookup all IP addresses, you can use the lookupIP() function:

<?php
    
use OBF\Net\DNS\DNS;

$ipAddresses = DNS::lookupIP('example.com');

This will still give you a list of IP addresses. If you want to narrow it down, you can also specify the IP type:

<?php

use OBF\Net\DNS\DNS;

$ipv4Addresses = DNS::lookupIP('example.com', DNS::LOOKUP_IPV4);
$ipv6Addresses = DNS::lookupIP('example.com', DNS::LOOKUP_IPV6);

Advanced usage

In the unlikely event that you do not want to use the DNS package to mask the built-in PHP DNS lookup functions, but want to create custom functionality, you can use the non-static version of the DNS utility using the DNSLookup class:

<?php
    
use OBF\Net\DNS\DNS;

$lookup = new DNSLookup();

$ipAddress = $lookup->lookupIP('example.com');

Note that DNSLookup supports the same calls as the DNS class does, but in a non-static fashion. If you need to override the default lookup adapter, you can do so by implementing a custom adapter based on iDNSLookupAdapter:

<?php

class MyDNSLookupAdapter implements iDNSLookupAdapter {
    public static function lookup($name, $type = DNSRecord::TYPE_ANY) {
        // Do some magic here.
    }
}