Sorry for replying to the replier (Timothy) instead of the OP (David), but the original post seems to have been eaten by my ISP.
On Tue, 05 Aug 2008 15:48:26 -0700, Timothy Grant wrote: > On Tue, Aug 5, 2008 at 2:50 PM, David York <[EMAIL PROTECTED]> wrote: >> Does anybody know how to find the real IP address (e.g.: address >> visible to internet) of a machine via Python? In other words I have a >> machine with an IP address something like 192.168.1.5, an address given >> to me by a router. The router's address (and thus my machine's address) >> to the outside world is something realistic, 123.156.123.156 or >> whatever. How do I get that number? I've tried >> socket.getaddrinfo('localhost', None) but all I get is 127.0.0.1 as >> expected. >> >> How do I find out my machine's IP address as visible to the outside >> world? Thanks a lot. >> >> David > > I'm not sure what you are trying to accomplish. The machine I'm typing > this on has a 192.168.x.x number. The router that gave it to me also has > a 192.168.x.x number. However, I know that that is not the IP that the > world sees when my packets finally leave the building. That's the IP address the OP probably wants. At least, when I've asked this exact same question, that's what I meant. The only way I know of is to query an external server that will tell you. There's a few of them out there. Here's a few: http://checkip.dyndns.org/ http://www.showmyip.com http://www.showmyip.com/simple/ http://whatismyip.org/ The basic algorithm is to connect to one of those sites and fetch the data it returns, then parse it appropriately. Some of them return a simple IP address, some a complicated bunch of text, some a nicely formatted XML document. Some of them only allow you to query the server a limited number of times. I don't remember which is which. To get you started, here's an untested piece of code: import urllib2 import re data = urllib2.urlopen(site).read() matcher = re.compile(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}") ip_address = matcher.search(data).group() -- Steven -- http://mail.python.org/mailman/listinfo/python-list