Sign inSign up

alestrix/arpscanweb

By alestrix

Updated almost 3 years ago

Make regular ARP scans and show results on a web page. https://github.com/Alestrix/arpscanweb

Image
0

990

alestrix/arpscanweb repository overview

See https://github.com/Alestrix/arpscanweb
Based on https://github.com/RobertCSternberg/ARPMonitorViaHTTP

Usage

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

Tag summary

Content type

Image

Digest

sha256:3ebd7db8b

Size

19.6 MB

Last updated

almost 3 years ago

docker pull alestrix/arpscanweb