TODO: We should cache failing IPs.
  Added comments.