Dnstap Protocol Buffers implementation in Python
Project description
Dnstap Protocol Buffers implementation in Python
Dnstap Protocol Buffers implementation in Python, more informations on dnstap http://dnstap.info/. This library is based on the following protocol buffers schema from github https://github.com/dnstap/dnstap.pb
Installation
This module can be installed from pypi website
pip install dnstap_pb
Decoder
Example to use the Dnstap decoder
import dnstap_pb
# dnstap decoder
dnstap = dnstap_pb.Dnstap()
payload = b'\n\x08dnsdist1\x12\rdnsdist 1.5.0r[\x08\x05\x10\x01\x18\x01"\x04\n\x00'
payload += b'\x00\xd2*\x04\n\x00\x00\xd20\xe6\xae\x0385@\x8e\x8f\xc6\xff\x05M\x1cf,'
payload += b'\x15R6\xda\xba\x01 \x00\x01\x00\x00\x00\x00\x00\x01\x03www\x06google\x02'
payload += b'fr\x00\x00\x01\x00\x01\x00\x00)\x10\x00\x00\x00\x00\x00\x00\x0c\x00\n\x00'
payload += b'\x08\xe68\xe3\x8e\x7f\x01\xdexx\x01'
dnstap.ParseFromString(payload)
dm = dnstap.message
print(dm)
type: CLIENT_QUERY
socket_family: INET
socket_protocol: UDP
query_address: "\n\000\000\322"
response_address: "\n\000\000\322"
query_port: 60218
response_port: 53
query_time_sec: 1609664434
query_time_nsec: 533617553
query_message: "\221W\001 \000\001\000\000\000\000\000\001\003www\006google\002fr\000\000\001
\000\001\000\000)\020\000\000\000\000\000\000\014\000\n\000\010\273\257\370\014_\001\341-"
Encoder
Example to use the Dnstap encoder
import dnstap_pb
# dnstap encoder
dnstap = dnstap_pb.Dnstap()
# clear all fields
dnstap.Clear()
# constructs the message
dnstap.type = 1
dnstap.version = b"0.1.0"
dnstap.identity = b"dnstap_python"
dnstap.message.type = dnstap_pb.dnstap_pb2._MESSAGE_TYPE.values_by_name["CLIENT_QUERY"].number
dnstap.message.socket_protocol = dnstap_pb.dnstap_pb2._SOCKETPROTOCOL.values_by_name["UDP"].number
dnstap.message.socket_family = dnstap_pb.dnstap_pb2._SOCKETFAMILY.values_by_name["INET"].number
# serialize the dnstap message to binary
payload = dnstap.SerializeToString()
Development
dnstap_pb2 file generation guideline
Download dnstap.proto from https://github.com/dnstap/dnstap.pb
wget https://raw.githubusercontent.com/dnstap/dnstap.pb/master/dnstap.proto
Download protoc
export VER=21.5
wget https://github.com/protocolbuffers/protobuf/releases/download/v$VER/protoc-$VER-linux-x86_64.zip
unzip protoc-$VER-linux-x86_64.zip
Generate proto
python3 -m pip install protobuf
bin/protoc --python_out=. dnstap.proto
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dnstap_pb-0.11.3.tar.gz
.
File metadata
- Download URL: dnstap_pb-0.11.3.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfc6b886d0ac5c2b9613f536a0b898d1493287d4a1ee672270f66ef837d946f4 |
|
MD5 | 242454b9a803101eb42d2542bfcec3cf |
|
BLAKE2b-256 | 5f29e2049561a2c6cbb5b9538b6c820bd388acf70f2c64143d95892a140dee02 |
Provenance
The following attestation bundles were made for dnstap_pb-0.11.3.tar.gz
:
Publisher:
pypi.yml
on dmachard/python-dnstap-protobuf
-
Statement:
- Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
dnstap_pb-0.11.3.tar.gz
- Subject digest:
dfc6b886d0ac5c2b9613f536a0b898d1493287d4a1ee672270f66ef837d946f4
- Sigstore transparency entry: 170727662
- Sigstore integration time:
- Permalink:
dmachard/python-dnstap-protobuf@c1786bef805a0ebad5d99286b3e826ac447d534c
- Branch / Tag:
refs/tags/v0.11.3
- Owner: https://github.com/dmachard
- Access:
public
- Token Issuer:
https://token.actions.githubusercontent.com
- Runner Environment:
github-hosted
- Publication workflow:
pypi.yml@c1786bef805a0ebad5d99286b3e826ac447d534c
- Trigger Event:
release
- Statement type:
File details
Details for the file dnstap_pb-0.11.3-py3-none-any.whl
.
File metadata
- Download URL: dnstap_pb-0.11.3-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4ee1859f9078d1ebb943b0e47a0497c4bb301bcc970935f7b9629d8c83160e6 |
|
MD5 | c21bb12e287f26f959556523ab505ca6 |
|
BLAKE2b-256 | dd667b4b4a6b86e38c1d7e9b22ce8243d056c2164f8d182af8bf8e05e2f7183b |
Provenance
The following attestation bundles were made for dnstap_pb-0.11.3-py3-none-any.whl
:
Publisher:
pypi.yml
on dmachard/python-dnstap-protobuf
-
Statement:
- Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
dnstap_pb-0.11.3-py3-none-any.whl
- Subject digest:
a4ee1859f9078d1ebb943b0e47a0497c4bb301bcc970935f7b9629d8c83160e6
- Sigstore transparency entry: 170727666
- Sigstore integration time:
- Permalink:
dmachard/python-dnstap-protobuf@c1786bef805a0ebad5d99286b3e826ac447d534c
- Branch / Tag:
refs/tags/v0.11.3
- Owner: https://github.com/dmachard
- Access:
public
- Token Issuer:
https://token.actions.githubusercontent.com
- Runner Environment:
github-hosted
- Publication workflow:
pypi.yml@c1786bef805a0ebad5d99286b3e826ac447d534c
- Trigger Event:
release
- Statement type: