By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,965 Members | 1,631 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,965 IT Pros & Developers. It's quick & easy.

Python Sockets Help

P: n/a
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/Coo...1264/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
Mar 10 '08 #1
Share this Question
Share on Google+
2 Replies


P: n/a
On Mon, Mar 10, 2008 at 6:58 PM, Mark M Manning <ma**********@gmail.comwrote:
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 would suggest taking a quick look at this tutorial.
http://ilab.cs.byu.edu/python/

Especially this:
http://ilab.cs.byu.edu/python/socket/echoserver.html
Mar 10 '08 #2

P: n/a
On 10 Mar, 23:58, Mark M Manning <mark.mann...@gmail.comwrote:
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/Coo...1264/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
Mar 11 '08 #3

This discussion thread is closed

Replies have been disabled for this discussion.