Metadata-Version: 2.1
Name: dnstap-pb
Version: 0.2.0
Summary: Dnstap Protocol Buffers implementation in Python
Home-page: https://github.com/dmachard/python-dnstap-protobuf
Author: Denis MACHARD
Author-email: d.machard@gmail.com
License: UNKNOWN
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](https://raw.githubusercontent.com/dnstap/dnstap.pb/master/dnstap.proto).
        
        ## Installation
        
        This module can be installed from [pypi](https://pypi.org/project/dnstap_pb) website
        
        ```python
        pip install dnstap_pb
        ```
        
        ## Decoder
        
        Example to use the Dnstap decoder
        
        ```python
        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\x00\xd2*\x04\n\x00\x00\xd20\xe6\xae\x0385@\x8e\x8f\xc6\xff\x05M\x1cf,\x15R6\xda\xba\x01 \x00\x01\x00\x00\x00\x00\x00\x01\x03www\x06google\x02fr\x00\x00\x01\x00\x01\x00\x00)\x10\x00\x00\x00\x00\x00\x00\x0c\x00\n\x00\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
        
        ```python
        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()
        ```
Keywords: dnstap protobuf decoder encoder
Platform: any
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/markdown
