#compdef arping

if _pick_variant iputils=iputils unix -V; then

_arguments -s \
  '-f[quit on first reply]' \
  '-q[be quiet]' \
  '-b[keep broadcasting, do not go unicast]' \
  '-D[duplicate address detection mode]'\
  '-U[Unsolicited ARP mode, update your neighbours]' \
  '-A[ARP answer mode, update your neighbours]' \
  '-V[print version and exit]' \
  '-c[how many packets to send]:count' \
  '-w[how long to wait for a reply]:timeout' \
  '-I[interface]:ethernet interface:_net_interfaces' \
  '-s[source ip address]:source IP address:_hosts' \
  ':destination:_hosts'

else

_arguments -s \
  '(-)-h[display help information]' \
  '-q[only display error messages]' \
  '-a[audible ping]' \
  '*-v[verbose output]' \
  '-r[raw output: only the MAC/IP address displayed]' \
  '-R[like -r but shows "the other one"]' \
  '-d[find duplicate replies]' \
  '(:)-B[255.255.255.255]' \
  '-0[source 0.0.0.0]' \
  '-b[source 255.255.255.255]' \
  '-S[set source IP]:source IP address:_hosts' \
  '-T[target IP]:target IP address:_hosts' \
  '-p[turn on promiscuous mode]' \
  '-s[set source MAC address]:source MAC address' \
  '-t[set target MAC address]:target MAC address' \
  '-c[send this many requests]:count' \
  '-i[interface]:interface:_net_interfaces' \
  '-A[only count addresses matching requested address]' \
  '(-B):address:_hosts'
 
fi
