Hi, how can i do what Encoding.ASCII.GetBytes (in .net, c#) does with the strings. I am trying to query some dns server to check its response using udp sockets. Some of the source below:
# encoding: utf8 import socket import sys import struct IP_PORT = 53 server_host = ('4.2.2.1', IP_PORT) transaction_id = "Q1" TIMEOUT = 5 type_string = "\u0001\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000" trailer_string = "\u0000\u0000\u0001\u0000\u0001" address = 'google.com' url_name_start, domain_name = address.split(".") # Query format copied from the C# example. #QueryString = TransactionID1 + TypeString + (char)URLNameStart.Length + URLNameStart + (char)DomainName.Length + DomainName+ TrailerString; query = (transaction_id + type_string + str(len(url_name_start)) + url_name_start + str(len(domain_name)) + domain_name + trailer_string) print query sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(TIMEOUT) sock.connect(server_host) sock.send(query) data = sock.recv(512) for data_item in data: try: print chr(data_item) except: print data_item But it just returns trash: >python dns_checker.py Q1\u0001\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u00006google3com \u0000\ u0000\u0001\u0000\u0001 Q 1 Ï ◄ Any advice ? Thanks! -- http://mail.python.org/mailman/listinfo/python-list