Make regular ARP scans and show results on a web page. https://github.com/Alestrix/arpscanweb
990
See https://github.com/Alestrix/arpscanweb
Based on https://github.com/RobertCSternberg/ARPMonitorViaHTTP
Run the Docker container in the background with network host and necessary capabilities and default target network (192.168.1.0/24). It should restart automatically if it stops for any reason:
docker run --restart=always --network=host -d --cap-add=NET_RAW alestrix/arpscanweb:latest
If you want to change the default target network, add the network in CIDR format as parameter:
docker run --restart=always --network=host -d --cap-add=NET_RAW alestrix/arpscanweb:latest 10.20.30.0/24
If your system has multiple interfaces you can pass the interface name too:
docker run --restart=always --network=host -d --cap-add=NET_RAW alestrix/arpscanweb:latest 10.20.30.128/25 enp3s0
If you want to scan more than one network at once, you can repeat the two-touples:
docker run --restart=always --network=host -d --cap-add=NET_RAW alestrix/arpscanweb:latest 10.20.30.128/25 enp3s0 192.168.10.0/24 wlp1s0
Please note that this will not work as you will always need a two-touple when scanning multiple networks:
docker run --restart=always --network=host -d --cap-add=NET_RAW alestrix/arpscanweb:latest 10.20.30.128/25 192.168.10.0/24
Network scanning defaults to once every minute. If you want a different frequency, use the --time option. The --time parameter needs to be the first parameter:
docker run --restart=always --network=host -d --cap-add=NET_RAW alestrix/arpscanweb:latest --time 30 10.20.30.128/25 enp3s0 192.168.10.0/24 wlp1s0
If you want the output in JSON format, add the --json parameter after the (optional) --time parameter:
docker run --restart=always --network=host -d --cap-add=NET_RAW alestrix/arpscanweb:latest --json 10.20.30.128/25 enp3s0 192.168.10.0/24 wlp1s0
or
docker run --restart=always --network=host -d --cap-add=NET_RAW alestrix/arpscanweb:latest --time 30 --json 10.20.30.128/25 enp3s0 192.168.10.0/24 wlp1s0
JSON reults will look like this:
$ curl --silent http://localhost:8080 | jq
{
"date": "2023-11-24T23:43:15Z+0000",
"results": [
{
"ip": "192.168.6.1",
"mac": "f0:9f:c2:15:cd:d4",
"rtt": "1.010",
"vendor": "Ubiquiti Networks Inc."
},
{
"ip": "192.168.6.120",
"mac": "74:eb:80:66:3f:12",
"rtt": "446.083",
"vendor": "Samsung Electronics Co.,Ltd"
},
{
"ip": "192.168.7.62",
"mac": "dc:a6:32:01:93:46",
"rtt": "1.124",
"vendor": "Raspberry Pi Trading Ltd"
}
]
}
$ curl --silent http://localhost:8080 | jq -r '.results[] | select(.mac=="dc:a6:32:01:93:46").ip'
192.168.7.62
Content type
Image
Digest
sha256:3ebd7db8b…
Size
19.6 MB
Last updated
almost 3 years ago
docker pull alestrix/arpscanweb