1#!/usr/bin/env python
2import os
3import sys
4import pickle
5import time
6import traceback
7import yahoo.search
8from yahoo.search.web import WebSearch
9
10APP_ID = 'P5ihFKzV34G69QolFfb3nN7p0rSsYfC9tPGq.IUS.NLWEeJ14SG9Lei0rwFtgwL8cDBrA6Egdw--'
11QUERY_MODIFIERS = '-site:txdns.net -site:sitedossier.com -mx -site:dataopedia.com -site:l0t3k.net -syslog -"4.2.2.1" -site:cqcounter.com -site:flow.nttu.edu.tw -site:websiteoutlook.com -site:ipgeolocator.com -site:tdyndns.org -site:ebrara.com -site:onsamehost.com -site:ipaddresscentral.com -site:quia.jp -inetnum -site:domaintools.com -site:domainbyip.com -site:pdos.csail.mit.edu  -statistics  -"country name" -"Q_RTT" -site:botsvsbrowsers.com -"ptr record" -site:ip-db.com -site:chaip.com.cn -site:lookup365.com -"IP Country" -site:iptoolboxes.com -"Unknown Country" -"Q_RTT" -amerika -whois -Mozilla -site:domaincrawler.com -site:geek-tools.org -site:visualware.com -site:robtex.com -site:domaintool.se -site:opendns.se -site:ungefiltert-surfen.de -site:datakitteh.org -"SLOVAKIA (SK)" -"IP Search" -site:www.medicore.com.ua -site:dig.similarbase.com -site:ipcorporationwiki.com -site:coolwhois.com'
12CACHE_DIR = os.getenv('HOME') + '/.ycache'
13
14def CheckPopularity(ip):
15  cache_path = os.path.join(CACHE_DIR, ip) + '.pickle'
16  if os.path.exists(cache_path):
17    f = open(cache_path)
18    return pickle.load(f)
19  else:
20    try:
21      query = '"%s" %s' % (ip, QUERY_MODIFIERS)
22      srch = WebSearch(APP_ID, query=query, results=50)
23      results = srch.parse_results()
24      pf = open(cache_path + '.pickle', 'w')
25      pickle.dump(results.results, pf)
26      pf.close()
27      return results
28    except yahoo.search.SearchError:
29      print "%s failed" % (ip)
30      return []
31
32if __name__ == "__main__":
33  for ip in sys.argv[1:]:
34    print '%s = %s' % (ip, total)
35    for result in results.results:
36      try:
37        print '  - %s: %s' % (result['Url'], result['Title'])
38      except UnicodeEncodeError:
39        print '  - %s' % result['Url']#      print results.results
40  time.sleep(0.5)
41