<refentry xmlns="http://docbook.org/ns/docbook" version="5.0"
xml:id="man.arping">

  <refentryinfo>
    <title>arping</title>
    <productname>iputils</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>
      <application>arping</application>
    </refentrytitle>
    <manvolnum>8</manvolnum>
    <refmiscinfo class='manual'>iputils</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname>arping</refname>
    <refpurpose>send ARP REQUEST to a neighbour host</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis sepchar=" ">
      <command>arping</command>
      <arg choice="opt" rep="norepeat">
        <option>-AbDfhqUV</option>
      </arg>
      <arg choice="opt" rep="norepeat">
        <option>-c
        <replaceable>count</replaceable></option>
      </arg>
      <arg choice="opt" rep="norepeat">
        <option>-w
        <replaceable>deadline</replaceable></option>
      </arg>
      <arg choice="opt" rep="norepeat">
        <option>-i
        <replaceable>interval</replaceable></option>
      </arg>
      <arg choice="opt" rep="norepeat">
        <option>-s
        <replaceable>source</replaceable></option>
      </arg>
      <arg choice="opt" rep="norepeat">
        <option>-I
        <replaceable>interface</replaceable></option>
      </arg>
      <arg choice="req" rep="norepeat">destination</arg>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsection>
    <info>
      <title>DESCRIPTION</title>
    </info>
    <para>Ping
    <emphasis remap="I">destination</emphasis> on device
    <emphasis remap="I">interface</emphasis> by ARP packets, using
    source address
    <emphasis remap="I">source</emphasis>.</para>
  </refsection>

  <refsection>
    <info>
      <title>OPTIONS</title>
    </info>
    <variablelist remap='TP'>
      <varlistentry>
        <term>
          <option>-A</option>
        </term>
        <listitem>
          <para>The same as
          <option>-U</option>, but ARP REPLY packets used instead
          of ARP REQUEST.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-b</option>
        </term>
        <listitem>
          <para>Send only MAC level broadcasts. Normally
          <command>arping</command> starts from sending broadcast,
          and switch to unicast after reply received.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-c
          <replaceable>count</replaceable></option>
        </term>
        <listitem>
          <para>Stop after sending
          <emphasis remap="I">count</emphasis> ARP REQUEST packets.
          With
          <emphasis remap="I">deadline</emphasis> option, instead
          wait for
          <emphasis remap="I">count</emphasis> ARP REPLY packets, or
          until the timeout expires.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-D</option>
        </term>
        <listitem>
          <para>Duplicate address detection mode (DAD). See
          RFC2131, 4.4.1. Returns 0, if DAD succeeded i.e. no
          replies are received.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-f</option>
        </term>
        <listitem>
          <para>Finish after the first reply confirming that target
          is alive.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-I
          <replaceable>interface</replaceable></option>
        </term>
        <listitem>
          <para>Name of network device where to send ARP REQUEST
          packets.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-h</option>
        </term>
        <listitem>
          <para>Print help page and exit.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-q</option>
        </term>
        <listitem>
          <para>Quiet output. Nothing is displayed.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-s
          <replaceable>source</replaceable></option>
        </term>
        <listitem>
          <para>IP source address to use in ARP packets. If this
          option is absent, source address is:</para>
          <variablelist remap='TP'>
            <varlistentry>
              <listitem>
                <para>• In DAD mode (with option
                <option>-D</option>) set to 0.0.0.0.</para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <listitem>
                <para>• In Unsolicited ARP mode (with options
                <option>-U</option> or
                <option>-A</option>) set to
                <emphasis remap='I'>destination</emphasis>.</para>
              </listitem>
            </varlistentry>
            <varlistentry>
              <listitem>
                <para>• Otherwise, it is calculated from routing
                tables.</para>
              </listitem>
            </varlistentry>
          </variablelist>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-U</option>
        </term>
        <listitem>
          <para>Unsolicited ARP mode to update neighbours' ARP
          caches. No replies are expected.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-V</option>
        </term>
        <listitem>
          <para>Print version of the program and exit.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-w
          <replaceable>deadline</replaceable></option>
        </term>
        <listitem>
          <para>Specify a timeout, in seconds, before
          <command>arping</command> exits regardless of how many
          packets have been sent or received. In this case
          <command>arping</command> does not stop after
          <emphasis remap='I'>count</emphasis> packet are sent, it
          waits either for
          <emphasis remap='I'>deadline</emphasis> expire or until
          <emphasis remap='I'>count</emphasis> probes are
          answered.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>
          <option>-i
          <replaceable>interval</replaceable></option>
        </term>
        <listitem>
          <para>Specify an interval, in seconds, between
          packets.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsection>

  <refsect1 id='see_also'>
    <title>SEE ALSO</title>
    <para>
    <citerefentry>
      <refentrytitle>ping</refentrytitle>
      <manvolnum>8</manvolnum>
    </citerefentry>,
    <citerefentry>
      <refentrytitle>clockdiff</refentrytitle>
      <manvolnum>8</manvolnum>
    </citerefentry>,
    <citerefentry>
      <refentrytitle>tracepath</refentrytitle>
      <manvolnum>8</manvolnum>
    </citerefentry>.</para>
  </refsect1>

  <refsect1 id='author'>
    <title>AUTHOR</title>
    <para>
    <command>arping</command> was written by Alexey Kuznetsov
    &lt;kuznet@ms2.inr.ac.ru&gt;.</para>
  </refsect1>

  <refsect1 id='security'>
    <title>SECURITY</title>
    <para>
    <command>arping</command> requires CAP_NET_RAW capability to be
    executed. It is not recommended to be used as set-uid root,
    because it allows user to modify ARP caches of neighbour
    hosts.</para>
  </refsect1>

  <refsect1 id='availability'>
    <title>AVAILABILITY</title>
    <para>
    <command>arping</command> is part of
    <emphasis remap='I'>iputils</emphasis> package.</para>
  </refsect1>
</refentry>
