<?xml version="1.0"?><!--*-nxml-*-->
<!DOCTYPE manpage SYSTEM "xmltoman.dtd">
<?xml-stylesheet type="text/xsl" href="xmltoman.xsl" ?>

<!--
  This file is part of avahi.

  avahi is free software; you can redistribute it and/or modify it
  under the terms of the GNU Lesser General Public License as
  published by the Free Software Foundation; either version 2.1 of the
  License, or (at your option) any later version.

  avahi is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
  Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with avahi; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
  USA.
-->

  <manpage name="avahi-resolve" section="1" desc="Resolve one or more mDNS/DNS host name(s) to IP address(es) (and vice versa) using the Avahi daemon">

	<synopsis>
      <cmd>avahi-resolve --name <arg>host-name ...</arg></cmd>
      <cmd>avahi-resolve-host-name <arg>host-name ...</arg></cmd>
      <cmd>avahi-resolve --address <arg>address ...</arg></cmd>
      <cmd>avahi-resolve-address <arg>address ...</arg></cmd>
	</synopsis>

    <description>
      <p>Resolve one or more mDNS/DNS host name(s) to IP address(es) (and vice versa) using the Avahi daemon.</p>
	</description>

	<options>

      <p>When passing -n, specify one or more fully qualified mDNS/DNS host name(s)
      (e.g. "foo.local") to resolve into IP addresses on the
      command line. When passing -a, specify one or more IP address
      to resolve into host names.</p>

      <p>avahi-resolve-host-name is equivalent to avahi-resolve --name.</p>

      <p>avahi-resolve-address is equivalent to avahi-resolve --address.</p>

	  <option>
		<p><opt>-n | --name</opt></p>
		<optdesc><p>Translate one or more fully qualified host names into addresses.</p></optdesc>
	  </option>

	  <option>
		<p><opt>-a | --address</opt></p>
		<optdesc><p>Translate one or more addresses into fully qualified host names.</p></optdesc>
	  </option>

      <option>
        <p><opt>-v | --verbose</opt></p>
        <optdesc><p>Enable verbose mode.</p></optdesc>
      </option>

      <option>
        <p><opt>-6</opt></p>
        <optdesc><p>When resolving a host name, look for IPv6 addresses exclusively.</p></optdesc>
      </option>

      <option>
        <p><opt>-4</opt></p>
        <optdesc><p>When resolving a host name, look for IPv4 addresses exclusively.</p></optdesc>
      </option>

	  <option>
		<p><opt>-h | --help</opt></p>
		<optdesc><p>Show help.</p></optdesc>
	  </option>


	  <option>
		<p><opt>-V | --version</opt></p>
		<optdesc><p>Show version information.</p></optdesc>
	  </option>


	</options>

	<section name="Authors">
	  <p>The Avahi Developers &lt;@PACKAGE_BUGREPORT@&gt;; Avahi is
	  available from <url href="@PACKAGE_URL@"/></p>
	</section>

	<section name="See also">
	  <p>
        <manref name="avahi-publish-address" section="1"/>,
        <manref
        name="avahi-daemon" section="8"/>
	  </p>
	</section>

	<section name="Comments">
	  <p>This man page was written using <manref name="xml2man" section="1"
		  href="http://masqmail.cx/xml2man/"/> by Oliver Kurth.</p>
	</section>

  </manpage>
