PythonはURLからIPアドレスを取得します

       (作成は簡単ではありません。好きになることを忘れないでください)

         情報化時代では、多くの場合、URL から IP アドレスを取得する必要があります。インターネットでそれを実現する方法を 10 分以上探しましたが、実行できなかったか、肥大化しすぎていました。そこでひらめきを得て、簡単な方法を考えました。

socketモジュールのgethostbyname関数はホスト名しか受け取れない        ので、まずはURLからホスト名を取得する関数を書きます。

        通常の URL は、常にいくつかの部分で構成されています。

        <プロトコル>://<サーバーの種類> . <ドメイン名>/<ディレクトリ>/<ファイル名>

https://www.baidu.com/https://www.csdn.net/        など

        そして、必要なホスト名は真ん中の文字列です:

        <サーバーの種類> . <ドメイン名>

        つまりwww.baidu.comwww.csdn.net

        ホスト名は最初の「//」と最初の「/」の間にあることがわかります。このことから、ホスト名を URL から分離する関数を簡単に作成できます。

def gethost(url):
    output = ''
    if '//' in url:
        output = url.split('//')[1]
        if '/' in output:
            output = output.split('/')[0]
    elif '/' in url:
        output = url.split('/')[0]
    return output

        これは、入力 URL が比較的正常な場合にのみ期待どおりに機能する単純な関数です。ただし、ブラウザーからコピーして貼り付けた URL には十分です。必要に応じてカプセル化するか、正規表現を使用してホスト名を分離することができます。

        次に、戻り値をgethostbynameに渡して結果を取得します。

        完全な手順は次のとおりです。

from socket import gethostbyname

def gethost(url):
    output = ''
    if '//' in url:
        output = url.split('//')[1]
        if '/' in output:
            output = output.split('/')[0]
    elif '/' in url:
        output = url.split('/')[0]
    return output

def getip(url):
    return gethostbyname(gethost(url))

getip関数        を呼び出すことで、 URL から IP を取得できます

        テストは次のとおりです。

url = (
    'https://www.baidu.com/',
    'https://www.csdn.net/',
    'https://mirrors.tuna.tsinghua.edu.cn/#'
)

for i in url:
    print(i, getip(i))

        結果:

f505137e49574aefb09552f482929cab.png

参考文献:

 

百度百科事典 - 検証

 

 

おすすめ

転載: blog.csdn.net/m0_71713477/article/details/127174636