You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Alexandre Dulaunoy b9aeb43411
chg: [doc] simple description added
3 years ago
conf.sample empty the uuid file 3 years ago
.gitignore update .gitignore 3 years ago
LICENSE Relicensing to MIT 3 years ago
Makefile update .gitignore 3 years ago chg: [doc] simple description added 3 years ago
d4-goclient.go corrects the uuid regeneration bug 3 years ago


A D4 project client (sensor) implementing the D4 encapsulation protocol.

The client can be used on different targets and architectures to collect network capture, logs, specific network monitoring and send it back to a D4 server.

For more information about the D4 project.


Fetch d4-goclient code and dependencies

go get
go get

Use make to build binaries:

make arm5l  # for raspberry pi / linux
make amd64l # for amd64 / linux


  • golang 1.10 (tested)
  • go.uuid


Launch a d4-server (if you don't have a server)

See $IP_SRV being the d4-server's address, $PORT its listening port

Pipe data into the client

Some file

cat /proc/cpuinfo | ./d4-goclient -c conf.sample/ |  socat - OPENSSL-CONNECT:$IP_SRV:$PORT,verify=0

tcpdump (libpcap) output, discarding our own traffic

$IP being the monitoring computer ip

tcpdump not dst $IP and not src $IP -w - | ./d4-goclient -c conf.sample/ |  socat - OPENSSL-CONNECT:$IP_SRV:$PORT,verify=0