2017-06-09 22 views
0

ドメインはgoogle.com、yahoo.comのようなものです。また、whoisの記録Pythonでドメインとホスト名を区別する方法

ホスト名は次のようなものですしている:m.google.com、www.google.com、images.google.com

ドメインは非常に興味深いのTLDとのccTLDを持つことができます。 google.co.uk、google.academy、google.xxx

ホスト名もこのようなことができます:ここmail.services.1.google.com、xxx.google.com

されます質問:私は文字列変数と私は値がホスト名かドメインかどうか決定したいと思う。 Pythonでそれらを区別する巧妙な方法はありますか?

答えて

0

あなたはすでにそれらを区別する方法を知っているようです。

urllib.parseを使用して文字列を分割し、独自のロジックを作成して決定します。

ドキュメント:https://docs.python.org/3/library/urllib.parse.html

+0

また、あなたはホスト名から解析されたドメインを区別するためにhttps://www.iana.org/domains/root/db @ TLDのリストを使用することができます。 – zwer

+0

urllib.parseは、ドメインではなくホスト名のみを提供します。私はそれを試してみました。あなたが書いたTLDリストには、ccTLDではなくTLDだけが含まれています!ここで主要な問題はccTLDです。それ以外の場合は、ポイントで分割した後の最後の部分は含めません – akdora

0

私は答えを見つけました。これはtldextractパッケージで行うことができます。

from tldextract import tldextract 

test_str = 'mail.google.co.uk' 
te_result = tldextract.extract(test_str) 
domain = '{}.{}'.format(te_result.domain, te_result.suffix) 
print('domain: {}'.format(domain)) 
print('is_hostname: {}'.format(test_str != domain)) 
print('is_domain: {}'.format(test_str == domain)) 

回答:

domain: google.co.uk 
is_hostname: True 
is_domain: False 
関連する問題