Add HTTP query support

This commit is contained in:
Larry Kim 2013-06-06 19:41:51 +09:00
parent 186916ff20
commit 481b449f77

View File

@ -11,6 +11,8 @@ import os
import socket import socket
import re import re
import logging import logging
import urllib
import urllib2
import error import error
import flags import flags
@ -54,6 +56,21 @@ class Whois(object):
logging.debug("chooseServer: Whois server addr: %s"%(self.tld + ".whois-servers.net")) logging.debug("chooseServer: Whois server addr: %s"%(self.tld + ".whois-servers.net"))
return self.tld + ".whois-servers.net" return self.tld + ".whois-servers.net"
def sendHTTPQuery(self, whoisServer):
param = urllib.urlencode({self.settings["http-arg"]: self.domain})
if self.settings.get("http-method").lower() == "post":
logging.debug("sendHTTPQuery: Connecting to whois server using POST")
req = urllib2.Request(whoisServer, param)
else: # GET
logging.debug("sendHTTPQuery: Connecting to whois server using GET")
req = urllib2.Request((whoisServer.endswith("?") and whoisServer or whoisServer+"?") + param)
data = urllib2.urlopen(req).read()
print data
return data
def sendQuery(self, whoisServer): def sendQuery(self, whoisServer):
'''Send query to whois server.''' '''Send query to whois server.'''
logging.debug("sendQuery: Connecting to whois server") logging.debug("sendQuery: Connecting to whois server")
@ -96,7 +113,11 @@ class Whois(object):
def query(self, redirect=True, return_type=flags.RETURN_TYPE_LIST): def query(self, redirect=True, return_type=flags.RETURN_TYPE_LIST):
'''Start whole process of whois query. This method will do them all.''' '''Start whole process of whois query. This method will do them all.'''
whoisServer = self.chooseServer() whoisServer = self.chooseServer()
result = self.sendQuery(whoisServer)
if self.settings.get("method") == "http":
result = self.sendHTTPQuery(whoisServer)
else:
result = self.sendQuery(whoisServer)
if redirect and "redirect" in self.settings: if redirect and "redirect" in self.settings:
logging.debug("query: Redirection found. Connecting to given server address") logging.debug("query: Redirection found. Connecting to given server address")