Packageflash.net.dns
Classpublic class DNSResolver
InheritanceDNSResolver Inheritance EventDispatcher Inheritance Object

Language version: ActionScript 3.0
Runtime version: AIR 2

The DNSResolver class lets you lookup Domain Name System (DNS) resource records.

AIR profile support: This feature is supported on all desktop operating systems, but is not supported on mobile devices. It is partially supported on AIR for TV devices. You can test for support at run time using the DNSResolver.isSupported property. See AIR Profile Support for more information regarding API support across multiple profiles.

You can look up the following types of resource records:

The following table indicates DNS lookup support on AIR for TV devices. Unsupported requests result in the DNSResolver object dispatching an flash.events.ErrorEvent object.

Record type specified in DNSResolver.lookup()Support
ARecordFull support
AAAARecordFull support
MXRecordNot supported
PTRRecordSupported only for IPv4 addresses, not for IPv6 addresses
SRVRecordNot supported

View the examples.

See also

ARecord
AAAARecord
MXRecord
PTRRecord
SRVRecord


Public Properties
 PropertyDefined by
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  isSupported : Boolean
[static][read-only] Indicates whether DNS lookups are supported on the client system.
DNSResolver
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
Public Methods
 MethodDefined by
  
Creates a DNSResolver object.
DNSResolver
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
 Inherited
Dispatches an event into the event flow.
EventDispatcher
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
  
lookup(host:String, recordType:Class):void
Looks up a DNS resource record based on a query string.
DNSResolver
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Events
 EventSummaryDefined by
 Inherited [broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
 Inherited [broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
   Dispatched when an error occurred during a DNS lookup.DNSResolver
   Dispatched when a DNS look-up is complete.DNSResolver
Property detail
isSupportedproperty
isSupported:Boolean  [read-only]

Runtime version: AIR 2

Indicates whether DNS lookups are supported on the client system.

Implementation
    public static function get isSupported():Boolean
Constructor detail
DNSResolver()constructor
public function DNSResolver()

Language version: ActionScript 3.0
Runtime version: AIR 2

Creates a DNSResolver object.

Method detail
lookup()method
public function lookup(host:String, recordType:Class):void

Language version: ActionScript 3.0
Runtime version: AIR 2

Looks up a DNS resource record based on a query string.

The lookup() method performs a DNS lookup asynchronously. Listen for the lookup event to get the results of the lookup. Listen for the error event to receive errors. Results are dispatched in a DNSResolverEvent object.

To specify the type of resource record to look up, pass the corresponding class in the recordType parameter. (Pass the class name itself and not a string containing the class name.)

The content of the query string passed to the method depends on the type of resource record being looked up. The following list illustrates the query string to use for each record type.

Record typeQuery stringExample
ARecordhost name"example.com"
AAAARecordhost name"example.com"
MXRecordhost name"example.com"
PTRRecordIP address"208.77.188.166"
SRVRecord_service._protocol.host."_sip._tcp.example.com."
Parameters
host:String — the query string, such as a host name, IP address, or service locator.
 
recordType:Class — The class representing the type of DNS resource record to look up.

Events
lookup:DNSResolverEvent — dispatched when the lookup is completed successfully.
 
error:ErrorEvent — dispatched when the lookup fails (including when no records exist).

Throws
ArgumentError — The host parameter value is not an appropriate query string or the recordType class is not recognized.

See also

Event detail
errorevent 
Event object type: flash.events.ErrorEvent
ErrorEvent.type property = flash.events.ErrorEvent.ERROR

Language version: ActionScript 3.0
Runtime version: AIR 2

Dispatched when an error occurred during a DNS lookup.

Defines the value of the type property of an error event object.

This event has the following properties:

PropertyValue
bubblesfalse
cancelablefalse; there is no default behavior to cancel.
currentTargetThe object that is actively processing the Event object with an event listener.
targetThe object experiencing a network operation failure.
textText to be displayed as an error message.
lookupevent  
Event object type: flash.events.DNSResolverEvent
DNSResolverEvent.type property = flash.events.DNSResolverEvent.LOOKUP

Language version: ActionScript 3.0
Runtime version: AIR 2

Dispatched when a DNS look-up is complete.

Defines the value of the type property of a lookup event object.

Examples
examples\DNSResolverExample
The following example shows how to look up the supported types of DNS records:
package
{
    import flash.desktop.NativeApplication;
	import flash.display.Sprite;
	import flash.events.DNSResolverEvent;
	import flash.events.ErrorEvent;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.net.dns.AAAARecord;
	import flash.net.dns.ARecord;
	import flash.net.dns.DNSResolver;
	import flash.net.dns.MXRecord;
	import flash.net.dns.PTRRecord;
	import flash.net.dns.SRVRecord;
	import flash.utils.getQualifiedClassName;
	
	public class DNSResolverExample extends Sprite
	{
		private var resolver:DNSResolver = new DNSResolver();
		
		public function DNSResolverExample()
		{
			resolver.addEventListener( DNSResolverEvent.LOOKUP, lookupComplete );
			resolver.addEventListener( ErrorEvent.ERROR, lookupError );
			
			//Look up records
			resolver.lookup( "www.example.com", ARecord );
			resolver.lookup( "example.com", AAAARecord );
			resolver.lookup( "example.com", MXRecord );
			resolver.lookup( "208.77.188.166", PTRRecord );
			resolver.lookup( "127.0.0.1", PTRRecord );
			resolver.lookup( "2001:1890:110b:1e19:f06b:72db:7026:3d7a", PTRRecord );
			resolver.lookup( "_sip._tcp.example.com.", SRVRecord );
			resolver.lookup( "www.example.com", ARecord );
			
			this.stage.nativeWindow.activate();
		}
		
		private function lookupComplete( event:DNSResolverEvent ):void
		{
			trace( "Query string: " + event.host );
			trace( "Record type: " +  flash.utils.getQualifiedClassName( event.resourceRecords[0] ) + 
				", count: " + event.resourceRecords.length );
			for each( var record in event.resourceRecords )
			{
				if( record is ARecord ) trace( record.name + " : " + record.address );
				if( record is AAAARecord ) trace( record.name + " : " + record.address );
				if( record is MXRecord ) trace( record.name + " : " + record.exchange + ", " + record.preference );
				if( record is PTRRecord ) trace( record.name + " : " + record.ptrdName );
				if( record is SRVRecord ) trace( record.name + " : " + record.target + ", " + record.port +
					", " + record.priority + ", " + record.weight );
			}			
		}
		
		private function lookupError( error:ErrorEvent ):void
		{
			trace("Error: " + error.text );
		}
	}
}