Skip to content

Granddave/arper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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