godaddy如何解析ip (godaddy云主机使用方法)

今天介绍一个非常有名的域名购买网站,对于网站的使用这里就不多说,直接开始正题,使用python调用godaddy的api,统计域名的详细信息。

###首先,能正常使用api的前提是你已经购买了域名。

###第二,如果不熟悉godaddy的调用过程,官方也给了详细的步骤与使用的说明文档。

godaddy两步验证取消,godaddy跳转步骤

###第三,需要获取api的认证,在这里点击 Getting Access 是key与secret。注意,其中的Test无法使用的,需要用产品的key与对应的secret才可以。而且,一旦选择创建key之后,里面的secret只会出现一次,所以好好保存。

godaddy两步验证取消,godaddy跳转步骤

###第四,查阅api的官方文档,熟悉每个api的作用。

其中使用的最多的应该也就是/v1/domains 这个系列的api了,所以如果有需要,多了解。

godaddy两步验证取消,godaddy跳转步骤

  • 注意:
  • 这里,godaddy官方只提供了api的借口,对于python使用的第三方库是没有的。所以只能自己搜或者自己写。我比较推荐的是godaddypy,这里也使用的是这个库。

####我们的需求:

  • 将对应账户里面的所有域名提取出来,然后打印出每个域名对应的创建时间,截止时间,公司信息,是否自动续费和域名状态。

###代码:

# -*- coding: utf-8 -*-
"""
@Auth: jackie.yuan
@Email: 13772002022@163.com
@Description: get godaddy's domains infomation
"""
import json,time
from datetime import datetime
from godaddypy import Client, Account
# 填写用户名称
admin = "xxx"+"'s domain info"
# 存储文件路径
set_path = "xxx"
# 获取认证,需要的是api的key和对应的secret
my_acct = Account(api_key='xxx', api_secret='xxx')
client = Client(my_acct)
# ----------------------------- 当代码已经完美运行之后,只需要修改上面带x的部分就好了
# 获取账户的域的信息(默认100 个,即少于100时直接用这个)
# Domains = client.get_domains()
# 获取账户的域的信息(limit为需要的数量,或者为用户域的数量,官方规定为0-1000)
Domains = client.get_domains_withlimit(1000) #需要添加
# 因为这个库不提供带修改限制的方法,所以要在库函数client.py中添加这个方法:
"""
 def get_domains_withlimit(self, limit):
 # Returns a list of domains for the authenticated user. add limit
 
 url = self.API_TEMPLATE + self.DOMAINS + u'?limit={}'.format(limit)
 data = self._get_json_from_response(url)
 domains = list()
 for item in data:
 domain = item['domain']
 domains.append(domain)
 self.logger.debug('Discovered domains: {}'.format(domain))
 return domains
"""
# 存放指定域名要求获取的对应信息
def Specified_info(i):
 domain_info = client.get_domain_info(i)
 # expires_date = domain_info["expires"]
 if client.get_domain_info(i).has_key("expires"):
 expires_date = datetime.strptime(domain_info["expires"],"%Y-%m-%dT%H:%M:%SZ").strftime("%Y/%m/%d")
 else:
 expires_date = "None"
 if client.get_domain_info(i).has_key("contactRegistrant"):
 organization = client.get_domain_info(i)["contactRegistrant"]["organization"]
 else:
 organization = "None"
 # organization = domain_info["contactRegistrant"]["organization"]
 Auto_renew = domain_info["renewAuto"]
 try:
 datetime.strptime(domain_info["createdAt"], "%Y-%m-%dT%H:%M:%SZ").strftime("%Y/%m/%d")
 except ValueError:
 create_date = datetime.strptime(domain_info["createdAt"], "%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y/%m/%d")
 else:
 create_date = datetime.strptime(domain_info["createdAt"], "%Y-%m-%dT%H:%M:%SZ").strftime("%Y/%m/%d")
 STATUS = domain_info["status"]
 return expires_date, organization, Auto_renew, create_date, STATUS
# 写入属性
with open(set_path, "a+") as f:
 f.write("\n" + admin + "\n")
 f.writelines(" domain , expires , organization , Auto-Renew , create_date , status\n") #用逗号分隔是为了可以直接存储在excel中。
# 对应每一个域名的信息分别存储
for i in Domains:
 if i == "bigtrafficgenerator.info": continue
 # Domain_Info_Specified = json.dumps(client.get_domain_info(i))
 # Domain_Info_Specified = client.get_domain_info(i)
 expires_date, organization, Auto_renew, create_date, STATUS = Specified_info(i)
 with open(set_path, "a+") as f:
 f.write(i+",")
 # f.writelines(Domain_Info_Specified + "\n")
 # f.write("到期日 : ")
 json.dump(expires_date, f)
 f.write(",")
 # f.write("所属公司 : ")
 json.dump(organization, f)
 f.write(",")
 # f.write("Auto-Renew : ")
 json.dump(Auto_renew, f)
 f.write(",")
 # f.write("分配时间 : ")
 json.dump(create_date, f)
 f.write(",")
 json.dump(STATUS, f)
 f.write(",\n")
 f.flush()
 print "get domain {} info success...".format(i)
 time.sleep(0.5) # 这个非常重要!! 不然客户端有可能会识别为类似DDOS攻击,时间自己把控
with open(set_path, "a+") as f:
 f.write("\n")
print "get all {} finished ! ".format(admin)
if __name__ == "__main__":
 pass

####由于我的文件路径直接指定了 xxx.csv 格式存储,所以结果直接可以在excel显示

godaddy两步验证取消,godaddy跳转步骤