您的位置:首页 > 编程语言 > Python开发

[置顶] 使用python进行whois查询并存入数据库

2017-11-23 18:16 513 查看

通过whois查询将得到域名的whois信息并存储在数据库中

具体方法不过多阐述

将出现请求出错的域名或者匹配出问题的域名写入数据库

'''
--------------------------

ver     :       2.0
date    :       2017/11/22
auth    :       wud

--------------------------
'''

import DNS
import MySQLdb
import whois
import sys
from time import sleep
from time import ctime

def getwhois(url):
try:
data = whois.whois(url)
print data
print "whois query successfully!"
return data
except:
print "whois query fail!"
f2 = open("fail.txt", 'r+')
print >> f2, url
f2.close()
pass

def getip(url):
try:
query = sys.argv[0]
DNS.DiscoverNameServers()
reqobj = DNS.Request(url)
answerobj = reqobj.req(name=query, qtype=DNS.Type.A)
if not len(answerobj.answers):
return
for item in answerobj.answers:
ip = ("%s") % (item['data'])
print "IP is: ", ip
return ip
except:
print "TIME OUT"
f2 = open("fail.txt", 'r+')
print >> f2, url
f2.close()
pass

def whoisoperation(ip,url,data):
text = data
try:
updated_date = str(text['updated_date'])
status = str(text['status'])
whoisname = str(text['registrant_name'])
dnssec = str(text['dnssec'])
city = str(text['tech_city'])
expiration_date = str(text['expiration_date'])
zipcode = str(text['zipcode'])
domain_name = str(text['domain_name'])
country = str(text['registrant_state_province'])
whois_server = str(text['whois_server'])
state = str(text['state'])
phone = str(text['tech_phone'])
registrar = str(text['registrar'])
# referral = text['referral']
referral_url = str(text['referral_url'])
address = str(text['registrant_address'])
name_servers = str(text['name_servers'])
emails = str(text['emails'])
creation_date = str(text['creation_date'])
try:
print "connecting databases..."
db = MySQLdb.connect("×××.×××.×××.×××", "×××××", "×××××××××", "×××", charset="utf8")
print "conncected!"
cursor = db.cursor()
cursor.execute('INSERT INTO whois_info(url,ip,updated_date,status,whois_name,dnssec,city,expiration_date,zipcode,domain_name,country,whois_server,state,registrar,referral_url,address,name_servers,creation_date,emails,Insert_time)values(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',
[url,ip,updated_date,status,whoisname,dnssec,city,expiration_date,zipcode,domain_name,country,whois_server,
state,registrar,referral_url,address,name_servers,creation_date,emails,ctime()])
db.commit()
print "insert successfully!"
except:
print "connect MySQL failed"
f2 = open("fail.txt", 'r+')
print >> f2, url
f2.close()
pass
try:
updated_date = str(text['updated_date'])
status = str(text['status'])
whoisname = str(text['tech_name'])
dnssec = str(text['dnssec'])
city = str(text['city'])
expiration_date = str(text['expiration_date'])
zipcode = str(text['zipcode'])
domain_name = str(text['domain_name'])
country = str(text['country'])
whois_server = str(text['whois_server'])
state = str(text['state'])
registrar = str(text['registrar'])
# referral = text['referral']
referral_url = str(text['referral_url'])
address = str(text['address'])
name_servers = str(text['name_servers'])
emails = str(text['emails'])
creation_date = str(text['creation_date'])
try:
print "connecting databases..."
db = MySQLdb.connect("×××.×××.×××.×××", "×××××", "×××××××××", "×××", charset="utf8")
print "conncected!"
cursor = db.cursor()
cursor.execute(
'INSERT INTO whois_info(url,ip,updated_date,status,whois_name,dnssec,city,expiration_date,zipcode,domain_name,country,whois_server,state,registrar,referral_url,address,name_servers,creation_date,emails,Insert_time)values(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',
[url, ip, updated_date, status, whoisname, dnssec, city, expiration_date, zipcode, domain_name, country,
whois_server, state, registrar, referral_url, address, name_servers, creation_date, emails, ctime()])
db.commit()
print "insert successfully!"
except:
print "connect MySQL failed"
f2 = open("fail.txt", 'r+')
print >> f2, url
f2.close()

except:
f2 = open("fail.txt", 'r+')
print >> f2, url
f2.close()
print "MATHC FAIL!"
pass

def main():
f = open("fail.txt",'r')
f1 = open("whois.txt",'r+')
flag = 4
while(flag>0):
url = f.readline()[:-1]
print 5-flag
print url
ip = getip(url)
data = getwhois(url)
whoisoperation(ip,url,data)
print >>f1, url
print >>f1, ip
print >>f1, data
flag-=1

if __name__ == '__main__':
main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐