zoukankan      html  css  js  c++  java
  • 淘宝接口-IP返回运营商

    #!/usr/bin/evn python
    # -*- coding:utf-8 -*-
    import json
    import urllib2
    import datetime
    import re
    import Queue
    import threading
    queue = Queue.Queue()
    thread = 3
    import sys
    reload(sys)
    sys.setdefaultencoding("utf-8")


    days = days = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime('%Y%m%d')
    rex = re.compile('OpenPlatfrom')


    def writefile(content):
        f = open('check.log','a+')
        f.write(content + ' ')
        f.close()

    def Getip_isp(i, q):
        while True:
            ip = q.get()
            url = 'http://ip.taobao.com/service/getIpInfo.php?ip=%s' % ip
            try:
                s = json.loads(urllib2.urlopen(url, timeout=2).readlines()[0])
                s = str(s['data']['isp']) + ',' + str(ip) + ',' + str(ip_dic.get(ip))
            except:
                s = "timeout"
            writefile(s)
            q.task_done()


    def readfile():
        isp_dic = {}
        logfile = "/home/log/weblog/elk-web-%s.log" % days
        f = open(logfile)
        for line in f:
            if rex.search(line):
                new = json.loads(json.loads(line.strip())['extra'])
                try:
                    isp_dic[new['clientIp']] = new['condIp']
                except:
                    pass
        f.close()
        return isp_dic
    ip_dic = readfile()
    print len(ip_dic)
    for k, v in ip_dic.items():
        queue.put(k)
        #isp = Getip_isp(k)
        #print k, isp, v

    for i in range(thread):
        run = threading.Thread(target=Getip_isp, args=(i, queue))
        run.setDaemon(True)
        run.start()
    #run.join()
    queue.join()

    ----------当你发现自己的才华撑不起野心时,就请安静下来学习吧---------
  • 相关阅读:
    组合模式
    过滤器模式
    桥接模式
    适配器模式
    原型模式
    建造者模式
    抽象工厂
    工厂方法
    静态工厂
    单例模式
  • 原文地址:https://www.cnblogs.com/Qing-840/p/5501537.html
Copyright © 2011-2022 走看看