ipr-daemon

module
v0.1.0-test5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2026 License: MIT

README

ipr-daemon

IPR Daemon (later referred to as iprd) is an ASIC miner listener, sniffing IP report messages live on the wire from a LAN.

Overview

iprd serves as a LAN-wide listening solution for ASIC miner listening by sniffing IP report packets sent by the miners. It captures the received IP & MAC addresses along with the miner type over an TCP stream for easy reading and integration with front-ends/applications like its sister project bitcap-ipr.

How it works

iprd is designed to run on a local server/PC with direct access to the LAN. Instead of running UDP listeners on specific ports, it looks at ALL local UDP packets in real-time and processes each one to see if it is an IP Report packet.

Effectively, works exactly like WireShark but specificly for IP Report packets.

As it receives IP Report messages, it will send the data over a TCP broadcast/stream that is accessible over an configurable port (default: port 7788).

Building

Currently, it supports UNIX-based distros (FreeBSD, Ubuntu, MacOS) and Windows!

pre-built binaries are available in Releases!

Build dependencies

  • Go (>=1.24.0)
  • make (Optional)

To build locally, simply run

go build -o iprd cmd/main.go
# or
make

Usage

[!WARNING] This program does require root permissions to run.

Once built (and marked at executable!), simply run:

sudo ./iprd -i "eth0"

where, -i is the system interface name that you want to listen on.

[!NOTE] On Windows, supply the network device name (i.e. "Ethernet Instance 0"). Run ipconfig in cmd/pwsh to see all interface names.

To configure the TCP port, use -p to supply:

sudo ./iprd -i "eth0" -p <SOME_PORT>

Subscribing to TCP broadcast

By default, the TCP broadcast listens on port 7788.

To start listening for messages, send the message {"command": "iprd_subscribe"} after initial connection to the broadcast.

See cmd/example/tcp_listener.go for an example golang implementation or can use netcat nc:

echo '{"command": "iprd_subscribe"}' | nc localhost 7788

Replacing localhost with host IP address if required.

Directories

Path Synopsis
cmd
example command
offline command
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL