zoukankan      html  css  js  c++  java
  • set_ip_pool

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-

    import redis
    import urllib2
    class RedisConnect:
        #class member
        __redisId=""
        __host=""
        __port=""
        __db=""
        __pwd=""

        #Add an element to the collection
        def setSadd(self,key,value):
            try:
                return self.__redisId.sadd(key,value)
            except Exception,e:
                print e

        #Delete an element in a collection.
        def srem(self,key,member):
            try:
                return self.__redisId.srem(key,member)
            except Exception,e:
                print e

        #Get the total number of elements in the collection
        def getScard(self,key):
            try:
                return self.__redisId.scard(key)
            except Exception,e:
                print e

        #Get some member
        def getSrandmember(self,key,count):
            try:
                return self.__redisId.srandmember(key,count)
            except Exception,e:
                print e


        #To determine whether the set in the member
        def getSismember(self,key,member):
            try:
                return self.__redisId.sismember(key,member)
            except Exception,e:
                print e

        #Delete all keys    
        def delAllKey(self):
            try:
                return self.__redisId.flushdb()
            except Exception,e:
                print e

    def getIp(count):
        url = "http://xvre.daili666api.com/ip/?tid=xxxxxxxxxxx&num=%d"%(count)
        req = urllib2.Request(url)
        res_data = urllib2.urlopen(req)
        res = res_data.read().split(" ")
        return res

    def main():
        try:
            redis=RedisConnect("xxxxxxxxxx",0000,x,"xxxxxxxxx")
            count=redis.getScard("ipPool")
            if  not count:
                Ips=getIp(10000)
                for i in Ips:
                    print "------Is insert ip :%s---------"%i
                    redis.setSadd("ipPool",i)
                    if redis.getScard("ipPool")>=1000:
                        break
            else:
                ipList=redis.getSrandmember("ipPool",500)
                for i in ipList:
                    print "xxxxxxxxxxIs delete ip :%sxxxxxxxxxxx"%i
                    redis.srem("ipPool",i)
                Ipss=getIp(10000)
                m=0
                while  redis.getScard("ipPool") <1000:
                    print  redis.getScard("ipPool")
                    print "------Is update ip :%s---------"%Ipss[m]
                    redis.setSadd("ipPool",Ipss[m])
                    m+=1
            print "--------------------------Update Ip Success----------------------------"

        except Exception,e:
            print e
            #Delete some ip

    if __name__  == "__main__":
        main()

  • 相关阅读:
    【模板】Bellman—Fort 单源最短路径算法
    【模板 && 拓扑】 Dijkstra 单源最短路径算法
    字符序列
    装载问题【回溯法】
    工作分配问题【回溯法】
    『模板』 子集生成
    [Codeforces]852A
    [Codeforces]852I
    [UOJ]#36. 【清华集训2014】玛里苟斯
    [Codeforces]848C
  • 原文地址:https://www.cnblogs.com/scarecrowpqs/p/5821758.html
Copyright © 2011-2022 走看看