Granddave / arper

Simple Arp listener written in Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

arper logo

Simple Arp listener written in Go.

Go CI

About

arper is a tool that listens for Arp response packets and keeps track on the devices on the network.

Features

  • Notification support (Discord Webhook API)
  • Hostname lookup
  • Hardware vendor lookup
  • Persistant storage

Usage

Root privileges are required since arper listen on raw packets on the specified network interface.

sudo arper [flags]

Configuration

Configurations can be set in multiple ways following the precedence order below.

  1. Command line flag
  2. Config file
  3. Default value

arper doesn't create any configuration file, but looks for ./arper.yaml first and /etc/arper/arper.yaml second.

Configuration CLI Flag Config file key Default
Listening interface --iface [inteface] Iface eth0
Database filepath --database-filepath [path] DatabaseFilepath /var/lib/arper/database.json
Discord webhook URL --discord-webhook-url [url] DiscordWebhookURL (empty)

Build and run in Docker

docker build -t arper .
docker run \
  --rm -it \
  --net host \
  -v $(pwd)/database.json:/var/lib/arper/database.json \
  -v $(pwd)/arper.yaml:/arper.yaml \
  arper

Local build

Go version >= 1.18 is required.

go mod tidy
go build ./cmd/arper

Similar applications

About

Simple Arp listener written in Go

License:MIT License


Languages

Language:Go 98.6%Language:Dockerfile 1.4%