使用Tor和pycurl的服务器IP

时间:2016-03-12 13:47:19

标签: python curl tor pycurl

我正在使用tor和python开发一个项目,为此我必须使用pycurl获取给定url的服务器ip。

目前我使用以下代码进行简单的查询和响应。

def query(url):
  """
  Uses pycurl to fetch a site using the proxy on the SOCKS_PORT.
  """
  output = StringIO.StringIO()

  curl = pycurl.Curl()
  curl.setopt( pycurl.URL, url )
  curl.setopt( pycurl.PROXY, '188.120.228.106' )
  curl.setopt( pycurl.PROXYPORT, 1080 )
  curl.setopt( pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5_HOSTNAME )
  curl.setopt(pycurl.CONNECTTIMEOUT, CONNECTION_TIMEOUT)

  try:
    curl.perform()
    return output.getvalue()
  except pycurl.error as exc:
    raise ValueError("Unable to reach %s (%s)" % (url, exc))

有关如何更改代码的任何建议,以便我也可以获取给定网址的服务器IP。

1 个答案:

答案 0 :(得分:2)

似乎您正在寻找的正确旗帜是CURLINFO_PRIMARY_IP

尝试在curl.getinfo(pycurl.PRIMARY_IP)对象上使用pycurl.Curl()