define( "DNS_OPCODE_UPDATE", 0x2000 );
define( "DNS_RCODE_SUCCESSFUL" , 0x0001 );
define( "DNS_RCODE_MALFORMATED" , 0x0002 );
define( "DNS_RCODE_FAILEDSERVER" , 0x0003 );
define( "DNS_RCODE_NAMEERROR" , 0x0004 );
define( "DNS_RCODE_UNIMPLEMENTED", 0x0005 );
define( "DNS_RCODE_REFUSED" , 0x0006 );
define( "DNS_HEADERSPEC_IS_RESPONSE" , 0x8000 );
define( "DNS_HEADERSPEC_OPCODE_MASK" , 0x7800 );
define( "DNS_HEADERSPEC_AUTHORITIVE_ANSWER" , 0x0400 );
define( "DNS_HEADERSPEC_TRUNCATED" , 0x0200 );
define( "DNS_HEADERSPEC_RECURSION_DESIRED" , 0x0100 );
define( "DNS_HEADERSPEC_RECURSION_AVAILABLE" , 0x0080 );
define( "DNS_HEADERSPEC_RESPONSE_SPEC_MASK" , 0x0480 );
define( "DNS_HEADERSPEC_QUERY_SPEC_MASK" , 0x0300 );
define( "DNS_HEADERSPEC_RESERVED" , 0x0e00 );
define( "DNS_HEADERSPEC_RESULT_CODE_MASK" , 0x000f );
define( "DNS_CLASS_INTERNET" , 0x0001 );
define( "DNS_UDP_PACKET_MAX_LENGTH", 512 );
class DNSRecord
{
var $type;
var $name;
var $dclass;
var $ttl;
var $specific_fields;
function DNSRecord(
$name,
$type,
$dclass = DNS_CLASS_INTERNET,
$ttl = 0,
$specific_fields = false ) {
$this->name = $name;
$this->type = $type;
$this->dclass = $dclass;
$this->ttl = $ttl;
$this->specific_fields = $specific_fields;
}