zoukankan      html  css  js  c++  java
  • python3批量查询域名是否注册

    #!/usr/local/bin/python3
    #coding=utf-8
    
    import re,sys,os,random,time, base64
    import urllib.parse, urllib.request
    import socket
    
    timeout = 10
    socket.setdefaulttimeout(timeout)
    
    proxy_list = [
    {'ip':"222.217.99.129", 'port':"9000", 'type':"http"},
    {'ip':"59.53.92.7", 'port':"8090", 'type':"http"},
    {'ip':"58.83.224.217", 'port':"8080", 'type':"http"},
    {'ip':"218.247.244.155", 'port':"8080", 'type':"http"},
    {'ip':"59.173.247.162", 'port':"8888", 'type':"http"},
    {'ip':"125.39.93.68", 'port':"8888", 'type':"http"},
    {'ip':"221.2.80.126", 'port':"8888", 'type':"http"},
    {'ip':"221.235.205.66", 'port':"8090", 'type':"http"},
    {'ip':"220.181.159.60", 'port':"8080", 'type':"http"},
    {'ip':"218.247.244.23", 'port':"8888", 'type':"http"},
    {'ip':"218.241.153.43", 'port':"8080", 'type':"http"},
    {'ip':"125.39.93.69", 'port':"8888", 'type':"http"},
    {'ip':"211.144.76.7", 'port':"8181", 'type':"http"},
    {'ip':"58.53.192.218", 'port':"8123", 'type':"http"},
    {'ip':"222.92.141.155", 'port':"8090", 'type':"http"},
    {'ip':"59.108.53.1", 'port':"8080", 'type':"http"},
    {'ip':"203.93.28.166", 'port':"8080", 'type':"http"},
    {'ip':"60.190.189.214", 'port':"8123", 'type':"http"},
    {'ip':"59.36.183.178", 'port':"8081", 'type':"http"},
    {'ip':"121.11.149.250", 'port':"8081", 'type':"http"},
    {'ip':"212.50.244.8", 'port':"8081", 'type':"http"},
    {'ip':"216.113.208.185", 'port':"8081", 'type':"http"},
    {'ip':"220.181.159.23", 'port':"8080", 'type':"http"},
    {'ip':"59.44.204.198", 'port':"8088", 'type':"http"},
    {'ip':"221.2.174.164", 'port':"8082", 'type':"http"},
    {'ip':"178.135.59.142", 'port':"8090", 'type':"http"},
    {'ip':"202.57.4.124", 'port':"8089", 'type':"http"},
    {'ip':"211.100.52.196", 'port':"8090", 'type':"http"},
    {'ip':"211.144.76.58", 'port':"9000", 'type':"http"}
    ]
    
    def request_domain(domain):
        have_error = True
        while have_error:
            try:
                url = 'http://pandavip.www.net.cn/check/check_ac1.cgi'
                user_agent = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)'
                values = {'domain' : domain,}
                headers = { 'User-Agent' : user_agent }
                data = urllib.parse.urlencode(values).encode()
                req = urllib.request.Request(url, data, headers)
    
                index = random.randint(0, len(proxy_list) - 1)
                proxy = proxy_list[index]
    
                if True:
                    proxy_support = urllib.request.ProxyHandler({proxy['type']: proxy['ip'] +':' + proxy['port']})
                    opener = urllib.request.build_opener(proxy_support)
                    urllib.request.install_opener(opener)
    
                response = urllib.request.urlopen(req)
                the_page = response.read().decode("utf8")
    
            except Exception as e:
                have_error = True
                proxy_list.pop(index)
    ##            print(">>>>>>>>>>> EXCEPTION:  " + proxy['ip']+ " " + str(e))
            else:
                have_error = False
        else:
            return the_page
    
    
    def construct_domain():
        domainList = []
        domainList.append({'pre': "doucube", 'ext': "com"})
        domainList.append({'pre': "doucube", 'ext': "net"})
        domainList.append({'pre': "doucube", 'ext': "org"})
        domainList.append({'pre': "doucube", 'ext': "cn"})
    
        for i in range(97, 123):
            domain_pre = chr(i)
            domainList.append({'pre': domain_pre, 'ext': "cn"})
    
        return domainList
    
    
    def main():
    
        domains = construct_domain()
    
        for i in range(0, len(domains)):
            domain_full = domains[i]['pre'] + "." + domains[i]['ext']
            result = request_domain(domain_full)
            cur_time        = str(time.strftime("%H:%M:%S", time.localtime()))
            if result.find("is not available") != -1:
                print(cur_time + "	" + domain_full + "	Occupied!")
            elif result.find("is available") != -1:
                print(cur_time + "	" + domain_full + "	FREE! ------->$")
            else:
                print(cur_time + "	" + domain_full + "	" + result)
    
    if __name__ == '__main__':
        main()
        print(base64.b64decode(b'Q29weXJpZ2h0IChjKSAyMDEyIERvdWN1YmUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLg==').decode())

    运行结果:

    *** Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win32. ***
    >>> 
    *** Remote Interpreter Reinitialized  ***
    >>> 
    12:21:12    doucube.com    Occupied!
    12:21:15    doucube.net    FREE! ------->$
    12:21:29    doucube.org    FREE! ------->$
    12:21:30    doucube.cn    FREE! ------->$
    12:21:30    a.cn    Occupied!
    12:21:33    b.cn    Occupied!
    12:21:35    c.cn    Occupied!
    12:21:35    d.cn    Occupied!
    12:21:37    e.cn    Occupied!
    12:21:38    f.cn    Occupied!
    12:21:38    g.cn    Occupied!
    12:21:42    h.cn    Occupied!
    12:21:42    i.cn    Occupied!
    12:21:43    j.cn    Occupied!
    12:21:45    k.cn    Occupied!
    12:21:49    l.cn    Occupied!
    12:21:50    m.cn    Occupied!
    12:21:50    n.cn    Occupied!
    12:21:50    o.cn    Occupied!
    12:21:53    p.cn    Occupied!
    12:21:53    q.cn    Occupied!
    12:21:56    r.cn    Occupied!
    12:21:56    s.cn    Occupied!
    12:22:06    t.cn    Occupied!
    12:22:07    u.cn    Occupied!
    12:22:08    v.cn    Occupied!
    12:22:08    w.cn    Occupied!
    12:22:08    x.cn    Occupied!
    12:22:10    y.cn    Occupied!
    12:22:11    z.cn    Occupied!
    
    Copyright (c) 2012 Doucube Inc. All rights reserved.
    
    >>> 
  • 相关阅读:
    3月9号作业
    7、循环之while循环和深浅copy
    6、可变不可变类型和运算符以及流程控制之if判断
    5、垃圾回收机制与用户交互以及运算符
    作业3月5号
    3月4号作业
    4、语法之变量以及基本数据类型
    3、Python介绍
    2、计算机基础详解
    五、流程控制值if...else
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6468390.html
Copyright © 2011-2022 走看看