[英]how to handle whois data
我需要將Whois數據放在一個表中
我具有從whois服務器提取數據的腳本,但是每個域擴展的輸出都不同。
例如,對於.com
域名,注冊人詳細信息作為總地址;對於.org
域名,其詳細信息作為注冊人名稱,street1,street2,street3等。
所以我無法提取注冊人詳細信息作為要放入數據庫的單元。
在某些地方,我聽說如果我們將其作為xml數據獲取,我們可以提取它,有人可以幫助解決這個問題嗎? 謝謝!。
實際上,問題遠不止於此。
WHOIS服務由RFC3912定義。 這是完全不明確的回答內容的格式非常基本的請求協議。 因此,答案通常反映了包含數據的數據庫的格式,並且每個數據庫的語法可能不同。 由於WHOIS可以用於您想要的任何內容,因此您無法對將獲得的答案的格式做出很多假設。 但是,希望您可以期望收到可解析的內容以及每個請求的格式類似的答案。
因此,您需要為每台服務器開發一個解析邏輯,這將以非常經驗的方式進行。
但是,這里有一些來自RFC的開發技巧。
您需要使用TCP端口43發送請求,並以CR + LF ASCII字符結尾的單行
您必須期望TCP連接結束,因為這意味着答案已完成。
特別是關於域名,您可能需要注意,以前對ASCII編碼的限制使一些注冊人使用Punycode對DNS系統中的某些(以示例為重點)字符串進行編碼,因此您可能希望能夠在Whois答復中獲得這些信息。如果您遇到一些答復,也可以。 自2003年以來,國際化域名的存在將要求您支持unicode編碼。 轉換名稱的算法很復雜,RFC 3490應該為您提供一些有用的細節。
祝好運 !
您需要檢測格式,並為它們使用不同的正則表達式。 或者,正如您提到的,您可以使用XML甚至JSON API http://whoisxmlapi.com/ http://www.domaintools.com/api/docs/
您需要擴展數據庫和處理,以更好地解決該問題。
如前所述,遠程服務提供的數據采用不同的格式。 因此,您需要將獲取數據和解析數據的關注點分開,因為兩者是相互獨立的。 例如,一個TLD的格式可以隨時間變化。
因此,首先,您需要按域獲取純文本數據並將其存儲為元數據:
然后,您可以稍后在第二個處理中進行解析。 您可以使用已經存在的元數據來決定所需的解析算法。 這也有助於您隨着時間的推移維護應用程序。
正確解析之后,您便獲得了目標格式。
除了這些技術處理之外,您還應注意Whois服務提供的使用條件。 並非所有在技術上可能的東西都在法律上或道德上被接受。 保重並以應有的尊重對待他人的個人記錄。 保護您收集的數據,例如存檔和加擾/鎖定您不再需要進行處理的數據。
另請參閱:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.