[置顶] 使用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()
相关文章推荐
- [置顶] 使用python将得到whois信息,存入数据库(分片法)
- web.py 0.3 新手指南 - 使用db.query进行高级数据库查询
- 跟老齐学Python之使用Python查询更新数据库
- Log4J使用实例---日志进行邮件发送或是存入数据库
- hibernate中使用HQL进行数据库查询
- 对于access,在数据库当中建立模糊查询时,这时用到的通配符号是“*”,而如果在VB中使用查询语句进行模糊查询时,这时就要用“%”
- com.microsoft.sqlserver.jdbc.SQLServerException: 此查询使用的不是 ANSI 外部联接运算符("*=" 或 "=*")。若要不进行修改即运行此查询,请使用存储过程 sp_dbcmptlevel 将当前数据库的
- 使用Java对数据库进行基本的查询和更新操作
- 使用JDBC对数据库进行查询的前期准备工作,以及简单的JDBC访问MySQL数据库(Mac)
- php+mysqli使用预处理技术进行数据库查询的方法
- Java Hibernate中使用HQL语句进行数据库查询的要点解析
- Symfony2使用Doctrine进行数据库查询方法实例总结
- 使用JDBC对数据库进行查询的前期准备工作,以及简单的JDBC访问MySQL数据库(Mac)
- 使用JDBC对数据库进行查询的前期准备工作,以及简单的JDBC访问MySQL数据库(Mac)
- 数据库查询性能优化(合理使用索引|避免或简化排序|避免对大型表进行全表顺序扫描|避免使用相关的子查询|避免使用通配符匹配 )
- Python与开源GIS:在OGR中使用SQL语句进行查询
- [SSIS] 在脚本里面使用数据库连接字符串进行查询等处理, 入坑
- python编程之一:使用网格索引算法进行空间数据查询
- 使用python将json存入数据库
- [原创]修正SubSonic v2.2.1的一处BUG,以及如何使用SubSonic进行多表查询、子查询以及数据库分页