Server IP : 192.168.23.10 / Your IP : 216.73.216.68 Web Server : Apache System : Linux echo.premieradvertising.com 5.14.0-362.8.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 7 14:54:22 EST 2023 x86_64 User : rrrallyteam ( 1049) PHP Version : 8.1.32 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF Directory (0755) : /home/../usr/share/doc/pango/../libiptcdata/../libndp/../python3-dns/examples/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
#!/usr/bin/python import argparse import sys import dns.exception import dns.message def main(): parser = argparse.ArgumentParser( description="Read sequence of DNS wire formats prefixed with 2-byte " "length field - like from TCP socket - and print the messages. This " "format is used e.g. by dnsperf -B option and dnsgen." ) parser.add_argument("infile") args = parser.parse_args() ok_msgs = 0 bad_msgs = 0 with open(args.infile, "rb") as infile: while True: offset = infile.tell() len_wire = infile.read(2) if len(len_wire) == 0: # end of file - expected break if len(len_wire) == 1: raise ValueError("incomplete length preamble, offset", offset) len_msg = int.from_bytes(len_wire, byteorder="big", signed=False) print(f"; msg offset 0x{offset + 2:x}, length {len_msg} bytes") msg_wire = infile.read(len_msg) if len(msg_wire) != len_msg: raise ValueError( f"incomplete message: expected {len_msg} != got {len(msg_wire)}, " f"length field offset 0x{offset:x}", ) try: msg = dns.message.from_wire(msg_wire) ok_msgs += 1 print(msg) except dns.exception.DNSException as ex: print(f"; invalid message, skipping: {ex}") bad_msgs += 1 print(f"; read {ok_msgs} valid and {bad_msgs} invalid messages") if bad_msgs: sys.exit(1) if __name__ == "__main__": main()