summaryrefslogtreecommitdiff
path: root/doc/arping.yodl
blob: 2bc3256a71531e8f3447f6bb95c225d55546de33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
manpage(arping)(8)(21th June, 2003)(arping)()

manpagename(arping)(sends arp and/or ip pings to a given host)

manpagesynopsis()
    bf(arping) [-0aAbBdDeFhpqrRuUv] [-S em(host/ip)] [-T em(host/ip)] [-s em(MAC)]    \
[-t em(MAC)] [-c em(count)] [-i em(interface)] [ -w em(seconds) ] [ -W em(seconds) ] [ -V em(vlan) ] [ -Q em(priority) ] [ -g em(group) ] \
<em(host) | -B>

    bf(arping) --help

manpagedescription()
    The em(arping) utility sends bf(ARP) and/or bf(ICMP) requests to the specified em(host) and displays the replies. The em(host) may be specified by its bf(hostname), its bf(IP) address, or its bf(MAC) address.

    One request is sent each second.

    When pinging an IP an ARP who-has query is sent. When pinging a MAC
    address a directed broadcast ICMP Echo request is sent. For more
    technical explanation and an FAQ, see the README file.

    em(Note on timing)

    ARP packets are usually replied to (on a LAN) so fast that the OS task
    scheduler can't keep up to get exact enough timing.
    On an idle system the roundtrip times will be pretty much accurate, but
    with more load the timing gets less exact.

    To get more exact timing on a non-idle system, re-nice arping to -15 or so.

    # nice -n -15 arping foobar

    This is not just an issue with arping, it is with normal ping also
    (at least it is on my system). But it doesn't show up as much with ping
    since arping packets (when pinging IP) doesn't traverse the IP stack when
    received and are therefore replied to faster.

manpageoptions()

    dit(--help) Show extended help. Not quite as extensive as this manpage,
        but more than -h.
    dit(-0) Use this option to ping with source IP address 0.0.0.0. Use this
	when you haven't configured your interface yet.
	Note that this may get the MAC-ping unanswered.
	This is an alias for -S 0.0.0.0.
    dit(-a) Audible ping.
    dit(-A) Only count addresses matching requested address (This *WILL*
	break most things you do. Only useful if you are arpinging many
	hosts at once. See arping-scan-net.sh for an example).
    dit(-b) Like -0 but source broadcast source address (255.255.255.255).
Note that this may get the arping unanswered since it's not normal behavior
for a host.
    dit(-B) Use instead of host if you want to address 255.255.255.255.
    dit(-c em(count)) Only send em(count) requests.
    dit(-C em(count)) Only wait for em(count) replies, regardless of -c and -w.
    dit(-d) Find duplicate replies. Exit with 1 if there are answers from
        two different MAC addresses.
    dit(-D) Display answers as exclamation points and missing packets as dots.
        Like flood ping on a Cisco.
    dit(-e) Like -a but beep when there is no reply.
    dit(-F) Don't try to be smart about the interface name. Even if this
switch is not given, -i disables this smartness.
    dit(-g em(group)) setgid() to this group instead of the nobody group.
    dit(-h) Displays a help message and exits.
    dit(-i em(interface)) Don't guess, use the specified interface.
    dit(-m em(type)) Type of timestamp to use for incoming packets.
        Use -vv when pinging to list available ones.
    dit(-p) Turn on promiscious mode on interface, use this if you don't
            "own" the MAC address you are using.
    dit(-P) Send ARP replies instead of requests. Useful with -U.
    dit(-q) Does not display messages, except error messages.
    dit(-Q em(priority)) 802.1p priority to set. Should be used with 802.1Q tag (-V).
        Defaults to 0.
    dit(-r) Raw output: only the MAC/IP address is displayed for each reply.
    dit(-R) Raw output: Like -r but shows "the other one", can be combined with
-r.
    dit(-s em(MAC)) Set source MAC address. You may need to use -p with this.
    dit(-S em(IP)) Like -b and -0 but with set source address.
Note that this may get the arping unanswered if the target does not have
routing to the IP. If you don't own the IP you are using, you may need to turn
on promiscious mode on the interface (with -p). With this switch you can find
out what IP-address a host has without taking an IP-address yourself.
    dit(-t em(MAC)) Set target MAC address to use when pinging IP address.
    dit(-T em(IP)) Use -T as target address when pinging MACs that won't
respond to a broadcast ping but perhaps to a directed broadcast.

em(Example):
mancommand(.nf)
mancommand(.sp)
	To check the address of MAC-A, use knowledge of MAC-B and IP-B.

	$ arping -S <IP-B> -s <MAC-B> -p <MAC-A>
    dit(-u) Show index=received/sent instead of just index=received when
	pinging MACs.
    dit(-U) Send unsolicited ARP. This sets the destination MAC address in
    the ARP frame to the broadcast address. Unsolicited ARP is used
    to update the neighbours' ARP caches.

	em(Example):
        mancommand(.nf)
        mancommand(.sp)
	$ arping -i <interface> -U <interface IP>
    dit(-v) Verbose output. Use twice for more messages.
    dit(-V em(vlan)) VLAN tag to set. Defaults to no VLAN tag.
    dit(-w em(sec)) Specify a timeout before ping exits regardless of how many packets have been sent or received.
    dit(-W em(sec)) Time to wait between pings.
    dit(-z) Enable seccomp (default seccomp state depends on compile options)
    dit(-Z) Disable seccomp (default seccomp state depends on compile options)


manpagesection(EXAMPLES)
mancommand(.nf)
mancommand(.sp)
  # bf(arping -c 3 88.1.180.225)
  ARPING 88.1.180.225
  60 bytes from 00:11:85:4c:01:01 (88.1.180.225): index=0 time=13.910 msec
  60 bytes from 00:11:85:4c:01:01 (88.1.180.225): index=1 time=13.935 msec
  60 bytes from 00:11:85:4c:01:01 (88.1.180.225): index=2 time=13.944 msec

  --- 88.1.180.225 statistics ---
  3 packets transmitted, 3 packets received,   0% unanswered

  # bf(arping -c 3 00:11:85:4c:01:01)
  ARPING 00:11:85:4c:01:01
  60 bytes from 88.1.180.225 (00:11:85:4c:01:01): icmp_seq=0 time=13.367 msec
  60 bytes from 88.1.180.225 (00:11:85:4c:01:01): icmp_seq=1 time=13.929 msec
  60 bytes from 88.1.180.225 (00:11:85:4c:01:01): icmp_seq=2 time=13.929 msec

  --- 00:11:85:4c:01:01 statistics ---
  3 packets transmitted, 3 packets received,   0% unanswered

  # bf(arping -C 2 -c 10 -r 88.1.180.225)
  00:11:85:4c:01:01
  00:11:85:4c:01:01

mancommand(.fi)
mancommand(.in)


manpagebugs()

	You have to use -B instead of arpinging 255.255.255.255, and -b
	instead of -S 255.255.255.255. This is libnets fault.

manpageseealso()

    bf(ping(8)), bf(arp(8)), bf(rarp(8))

manpageauthor()

    Arping was written by Thomas Habets <thomas@habets.se>.

    http://www.habets.pp.se/synscan/

    git clone http://github.com/ThomasHabets/arping.git