"Getaddrinfo Failed", What Does That Mean

getaddrinfo failed, what does that mean?

It most likely means the hostname can't be resolved.

import socket
socket.getaddrinfo('localhost', 8080)

If it doesn't work there, it's not going to work in the Bottle example. You can try '127.0.0.1' instead of 'localhost' in case that's the problem.

(python) [Errno 11001] getaddrinfo failed

Well, let’s ask Python what type of exception that is:

#!/usr/bin/env python2.7

import pygeoip
gi = pygeoip.GeoIP('GeoIP.dat')
try:
print gi.country_code_by_name('specificdownload.com')
except Exception, e:
print type(e)
print e

Prints:

$ ./foo.py
<class 'socket.gaierror'>
[Errno 8] nodename nor servname provided, or not known

So we need to catch socket.gaierror, like so:

#!/usr/bin/env python2.7

import pygeoip
import socket
gi = pygeoip.GeoIP('GeoIP.dat')
try:
print gi.country_code_by_name('specificdownload.com')
except socket.gaierror:
print 'ignoring failed address lookup'

Though there’s still the question of, what the heck is gaierror? Google turns up the socket.gaierror documentation, which says,

This exception is raised for address-related errors, for getaddrinfo() and getnameinfo()

So GAI Error = Get Address Info Error.



Related Topics



Leave a reply



Submit