日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

如何以編程方式查找域名是否已注冊

 印度阿三17 2019-07-13

我使用pywhois來確定域名是否已注冊.這是我的源代碼. (從a.net到zzz.net的所有排列)

#!/usr/bin/env python
import whois  #pip install python-whois
import string
import itertools

def main():
    characters = list(string.ascii_lowercase)
    ##domain names generator
    for r in range(1, 4) :
        for name in itertools.permutations(characters, r) : #from 'a.net' to 'zzz.net'
            url = ''.join(name)   '.net'

            #check if a domain name is registered or not
            try :
                w = whois.whois(url)
            except (whois.parser.PywhoisError):  #NOT FOUND
                print(url)   #unregistered domain names?

if __name__ == '__main__':
    main()

我得到了以下結(jié)果:

jv.net
uli.net
vno.net
xni.net

但是,以上所有域名都已注冊.這不準(zhǔn)確.有人能解釋一下嗎?有很多錯誤:

fgets: Connection reset by peer
connect: No route to host
connect: Network is unreachable
connect: Connection refused
Timeout.

here報告了另一種方法.

import socket   
try:    
    socket.gethostbyname_ex(url) 
except:
    print(url) #unregistered domain names?

在談到速度時,我使用map來并行處理.

def select_unregisteredd_domain_names(self, domain_names):
    #Parallelism using map
    pool = ThreadPool(16)  # Sets the pool size
    results = pool.map(query_method(), domain_names)
    pool.close()  #close the pool and wait for the work to finish
    pool.join()

    return results

解決方法:

這是一個棘手的問題,比大多數(shù)人意識到的要棘手.原因是有些人不希望你發(fā)現(xiàn)這一點.大多數(shù)域名注冊商都會使用大量的黑魔法(即許多特定于TLD的黑客)來獲取他們提供的精彩列表,并且通常他們會弄錯.當(dāng)然,最終他們肯定會知道,因為他們擁有EPP訪問權(quán)限可以保留權(quán)威答案(但通常只有在您點擊“訂單”時才會這樣做).

你的第一種方法(whois)曾經(jīng)是一個很好的方法,而且我在90年代大規(guī)模地做了這個,當(dāng)時一切都更加開放.如今,許多頂級域名(TLD)都會保護(hù)驗證碼和阻礙性網(wǎng)絡(luò)界面背后的信息,以及諸如此類的東西.如果不出意外,每個IP的查詢數(shù)量都會有配額. (并且它也可能是有充分理由的,我過去常常將大量垃圾郵件發(fā)送到用于注冊域名的電子郵件地址).另請注意,通過查詢向其WHOIS數(shù)據(jù)庫發(fā)送垃圾郵件通常會違反其使用條款,您可能會受到限制,阻止甚至向您的ISP收到濫用報告.

您的第二種方法(DNS)通常要快得多(但不要使用gethostbyname,使用Twisted或其他一些異步DNS來提高效率).您需要弄清楚每個TLD對已采用域和免費域的響應(yīng)如何.僅僅因為域沒有解析并不意味著它是免費的(它可能只是未使用).相反,一些TLD擁有所有不存在域的登錄頁面.在某些情況下,單獨使用DNS是不可能的.

那么,你如何解決它?我很害怕,不輕松.對于每個TLD,您需要弄清楚如何巧妙地使用DNS和whois數(shù)據(jù)庫,從DNS開始并在棘手的情況下采用其他方法.確保不要使用查詢來填充whois數(shù)據(jù)庫.

另一個選擇是獲得其中一個注冊商的API訪問權(quán)限,他們可能提供對域搜索的編程訪問.

來源:https://www./content-1-322101.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多