Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dnstap_pb-0.11.3.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

dnstap_pb-0.11.3-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

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

Hashes for dnstap_pb-0.11.3.tar.gz
Algorithm Hash digest
SHA256 dfc6b886d0ac5c2b9613f536a0b898d1493287d4a1ee672270f66ef837d946f4
MD5 242454b9a803101eb42d2542bfcec3cf
BLAKE2b-256 5f29e2049561a2c6cbb5b9538b6c820bd388acf70f2c64143d95892a140dee02

See more details on using hashes here.

Provenance

The following attestation bundles were made for dnstap_pb-0.11.3.tar.gz:

Publisher: pypi.yml on dmachard/python-dnstap-protobuf

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for dnstap_pb-0.11.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a4ee1859f9078d1ebb943b0e47a0497c4bb301bcc970935f7b9629d8c83160e6
MD5 c21bb12e287f26f959556523ab505ca6
BLAKE2b-256 dd667b4b4a6b86e38c1d7e9b22ce8243d056c2164f8d182af8bf8e05e2f7183b

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page