liuyuqi-dellpc 10 months ago
parent
commit
a2537131d0

+ 3 - 6
README.zh-CN.md

@@ -13,12 +13,13 @@ pip install -r requirements.txt
 
 1、批量生成域名
 ```
-python generateDomain.py
+python main.py generate
+python main.py generate_en
 ```
 
 2、批量检测域名是否可以注册,并将结果保存到数据库或文件
 ```
-python main.py
+python main.py search
 ```
 
 
@@ -37,10 +38,6 @@ docker run -it --rm -v /data/searchdomain:/app ccr.ccs.tencentyun.com/jianboy/se
 ```
 useradd -u 5678 searchdomain
 
-docker pull ccr.ccs.tencentyun.com/jianboy/searchdomain:v1.0.5
-
-docker run -it --rm -v /data/searchdomain:/app ccr.ccs.tencentyun.com/jianboy/searchdomain:v1.0.5
-
 alias searchdomain='docker run -it --rm -v /data:/app jianboy/searchdomain'
 
 searchdomain --input domain.txt --output result.txt

+ 21 - 11
main.py

@@ -9,17 +9,27 @@
 '''
 
 from searchdomain import SearchDomain, GenerateDomain, GenerateEnDomain
+import sys
+import argparse
 
-if __name__== "__main__":
-    # 生成域名    
-    # generateDomain = GenerateDomain() 
-    # generateDomain.run()
-
-    # generateDomain = GenerateEnDomain() 
-    # generateDomain.run()
+def parse_args():
+    parser = argparse.ArgumentParser(description='search domain')
+    parser.add_argument('--command', action='store_true', help='command: generate, search, generate_en', choices=['generate', 'search', 'generate_en'])
+    parser.add_argument('--export_all', action='store_true', help='export all domain')
+    return parser.parse_args()
 
-    # 查询域名可用
-    serachdomain = SearchDomain(debug=True, export_all=False) 
-    serachdomain.run()
+if __name__== "__main__":
+    args = parse_args()
 
-    
+    if args.command=="generate":
+        generateDomain = GenerateDomain() 
+        generateDomain.run()
+    elif args.command=="generate_en":
+        generateDomain = GenerateEnDomain() 
+        generateDomain.run()
+    elif args.command=="search":
+        serachdomain = SearchDomain(debug=True, export_all=False) 
+        serachdomain.run()
+    else:
+        print("please input command: generate, search, generate_en")
+        sys.exit(1)

+ 1 - 2
searchdomain/domain_notify.py

@@ -1,9 +1,8 @@
 import whois
 from concurrent.futures import ThreadPoolExecutor
-import os,sys,re,json
-# import requests
 import time
 from .push import EmailPush
+
 class DomainNotify(object):
     """域名到期推送"""
     def __init__(self):

+ 0 - 5
searchdomain/searchdomain.py

@@ -1,14 +1,9 @@
 import whois
 from concurrent.futures import ThreadPoolExecutor
-import os
-import sys
-import re
-import json
 import logging
 import argparse
 from . import db
 
-
 class SearchDomain(object):
     """search avaliable domain and save result"""
 

+ 0 - 0
searchdomain/utils/__init__.py


+ 44 - 0
searchdomain/utils/domain_util.py

@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+"""
+@Contact :   liuyuqi.gov@msn.cn
+@Time    :   2024/04/26
+@License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
+@Desc    :   域名工具
+"""
+import whois
+from concurrent.futures import ThreadPoolExecutor
+
+class DomainUtil(object):
+    """域名工具"""
+    def __init__(self):
+        super(DomainUtil,self).__init__()
+    
+    @staticmethod
+    def get_expiration_date(domain:str)->None:
+        '''
+        检测域名是否快到期
+        :params domain 域名:
+        :return true or false'''
+        try:
+            whi = whois.whois(domain)
+            expirationDate= whi.expiration_date
+            return expirationDate
+        except Exception as e:
+            print(e)
+        return None
+
+    @staticmethod
+    def is_available(domain: str)->None:
+        '''
+        检测域名是否可用
+        :params domain 域名:
+        :return true or false'''
+        try:
+            whi = whois.whois(domain)
+            return False
+        except Exception as e:
+            if(str(e).index("No match") == 0):
+                return True
+            else:
+                return False