Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h2. DNS
*Available as of Camel 2.7*

This is an additional component for Camel to run DNS queries, using DNSJava. The component is a thin layer on top of [DNSJava|http://www.xbill.org/dnsjava/].
The component offers the following operations:
- ip, to resolve a domain by its ip
- lookup, to lookup information about the domain
- dig, to run DNS queries

{info:title=Requires SUN JVM}
The DNSJava library requires running on the SUN JVM.
If you use Apache ServiceMix or Apache Karaf, you'll need to adjust the {{etc/jre.properties}} file, to add {{sun.net.spi.nameservice}} to the list of Java platform packages exported. The server will need restarting before this change takes effect.
{info}

Maven users will need to add the following dependency to their {{pom.xml}} for this component:
{code:xml}
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-dns</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
{code}

h3. URI format

The URI scheme for a DNS component is as follows

{code}
dns://operation[?options]
{code}

This component only supports producers.

h3. Options

None.

h3. Headers

{div:class=confluenceTableSmall}
|| Header || Type || Operations || Description ||
| dns.domain | String | ip | The domain name. Mandatory. |
| dns.name | String | lookup | The name to lookup. Mandatory. |
| dns.type | - |  lookup, dig | The type of the lookup. Should match the values of {{org.xbill.dns.Type}}. Optional. |
| dns.class | - | lookup, dig| he DNS class of the lookup. Should match the values of {{org.xbill.dns.DClass}}. Optional. |
| dns.query | String | dig | The query itself. Mandatory. |
| dns.server | String | dig | The server in particular for the query. If none is given, the default one specified by the OS will be used. Optional. |
{div}

h3. Examples

h4. IP lookup
{code:xml}
        <route id="IPCheck">
            <from uri="direct:start"/>
            <to uri="dns:ip"/>
        </route>
{code}

This looks up a domain's IP. For example, www.example.com resolves to 192.0.32.10.
The IP address to lookup must be provided in the header with key {{"dns.domain"}}.

h4. DNS lookup
{code:xml}
        <route id="IPCheck">
            <from uri="direct:start"/>
            <to uri="dns:lookup"/>
        </route>
{code}

This returns a set of DNS records associated with a domain.
The name to lookup must be provided in the header with key {{"dns.name"}}.

h4. DNS Dig
Dig is a Unix command-line utility to run DNS queries.
{code:xml}
        <route id="IPCheck">
            <from uri="direct:start"/>
            <to uri="dns:dig"/>
        </route>
{code}

The query must be provided in the header with key {{"dns.query"}}.


{include:Endpoint See Also}