Encoding.ASCII.GetBytes similar for Python ?

Rui ruivaldo at gmail.com
Mon Sep 22 07:23:09 EDT 2008


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!




More information about the Python-list mailing list