On 10 Mar, 23:58, Mark M Manning <[EMAIL PROTECTED]> wrote: > I need your expertise with a sockets question. > > Let me preface this by saying I don't have much experience with > sockets in general so this question may be simple. > > I am playing with the mini dns server from a script I found > online:http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/491264/index_txt > > All I want to do is edit this script so that it records the IP > address. I've seen other examples use the accept() object which > returns the data and the IP address it is receiving the data from. I > can't use that in this case but I'm wondering if someone could show me > how. > > Here is the socket part of the script: > > if __name__ == '__main__': > ip='192.168.1.1' > print 'pyminifakeDNS:: dom.query. 60 IN A %s' % ip > > udps = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) > udps.bind(('',53)) > > try: > while 1: > data, addr = udps.recvfrom(1024) > p=DNSQuery(data) > udps.sendto(p.respuesta(ip), addr) > print 'Respuesta: %s -> %s' % (p.dominio, ip) > except KeyboardInterrupt: > print 'Finalizando' > udps.close() > > Thanks to everyone in advance! > ~Mark
You already have the address of the sender, is in the 'addr' variable, as returned by udps.recvfrom. Change the print statement in sometinmh like: print 'Respuesta (%s): %s -> %s' % ( addr, p.dominio, ip) and you will see the sender address in dotted notation printed inside the (). Ciao ------- FB -- http://mail.python.org/mailman/listinfo/python-list