簡體   English   中英

IP 域名地址

[英]IP address by Domain Name

我正在嘗試獲取域的 IP 地址。我正在使用以下代碼

>> import socket
>> socket.gethostbyname('www.google.com')

它給了我以下錯誤..

Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    socket.gethostbyname('www.google.com')
gaierror: [Errno 11001] getaddrinfo failed

我的代碼有什么問題...還有其他方法可以通過 python 中的域名獲取 ip 地址嗎..??? 請幫忙...

你的代碼是正確的。 也許您和這些服務器之間有防火牆阻止了請求?

import socket
domainName = input('Enter the domain name: ')
print(socket.gethostbyname(domainName))

我想你忘了打印它,因為它對我有用。

# Python3 code to display hostname and 
# IP address 

# Importing socket library 
import socket 

# Function to display hostname and 
# IP address 
def get_Host_name_IP(): 
    try: 
        host_name = socket.gethostname() 
        host_ip = socket.gethostbyname(host_name) 
        print("Hostname : ",host_name) 
        print("IP : ",host_ip) 
    except: 
        print("Unable to get Hostname and IP") 

# Driver code 
get_Host_name_IP() #Function call 

#This code is conributed by "Sharad_Bhardwaj". 

當域未托管在任何地方(未連接到任何 IP、任何名稱服務器)或根本不存在時,也會出現該錯誤。

這是完整的示例,如何通過域名獲取 IP 地址。

import urllib.parse
import socket
import dns.resolver

def get_ip(target):
    try:
        print(socket.gethostbyname(target))
    except socket.gaierror:
        res = head(target, allow_redirects=True)
        try:
            print(r.headers['Host'])
        except KeyError:
            parsed_url = urllib.parse.urlparse(target)
            hostname = parsed_url.hostname
            try:
                answers = dns.resolver.query(hostname, 'A')
                for rdata in answers:
                    print(rdata.address)
            except dns.resolver.NXDOMAIN:
                print('ip not found')

get_ip('example.com')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM