[英]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.