Python 实现域名解析为ip的方法


Posted in Python onFebruary 14, 2019

今天得了一批域名,需要把域名解析成ip

因为量比较大所以采用了多进程和队列的方式

from multiprocessing import Process,Queue,Pool
import socket
import multiprocessing
import os 
 
#写入文件
def write(q,lock,filename):
 while not q.empty():
  url = q.get()
  print (url)
  try:
   ip = socket.gethostbyname(url)
  except:
   ip = "unknow"
  print (ip)
  with open(filename,'a+') as f:
   lock.acquire()      #加锁防止多个进程写入会混乱
   try:
    f.write(url + " " + ip + "\n")
   finally:
    lock.release()
 
#添加到队列
def readurl(q,n):
 with open(str(n)+'.txt','r') as f:
  lines = f.readlines()
  for line in lines:
   q.put(line.strip())
 return q
 
#根据进程进行拆分txt
def multi(urllist,n):
 with open(urllist,'r') as f:
  lines = f.readlines()
  line = int(len(lines)/n)
  print (line)
  for m in range(0,n):
   with open(str(m)+'.txt','a+') as f1:
    for i in range(line*m,line*(m+1)):
     f1.write(lines[i])
 
#删除拆分的txt文件
def remove(n):
 for i in range(0,n):
  os.remove(str(i)+'.txt')
 print ("######清除临时文件######")
 
 
if __name__ == "__main__":
 
 manager = multiprocessing.Manager()
 q = manager.Queue()
 lock = manager.Lock()
 m = 5       #设置扫描进程数
 urllist = "url.txt"    #待解析的url
 filename = "test.txt"   #结果保存的文件名
 multi(urllist,m)
 p = Pool(m)
 for i in range(m):
  p.apply_async(write,args=(readurl(q,i),lock,filename))
 p.close()
 p.join()
 
 remove(m)
 
 print ("#######全部文件采集完成########")

以上这篇Python 实现域名解析为ip的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 不关闭控制台的实现方法
Oct 23 Python
python获取当前日期和时间的方法
Apr 30 Python
Python pickle模块用法实例分析
May 27 Python
Python中字符串格式化str.format的详细介绍
Feb 17 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
Django 多语言教程的实现(i18n)
Jul 07 Python
selenium+python自动化测试之环境搭建
Jan 23 Python
python实现桌面托盘气泡提示
Jul 29 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 Python
Python hmac模块使用实例解析
Dec 24 Python
Python while循环使用else语句代码实例
Feb 07 Python
python不同系统中打开方法
Jun 23 Python
解决python Markdown模块乱码的问题
Feb 14 #Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 #Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 #Python
python实现全盘扫描搜索功能的方法
Feb 14 #Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 #Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 #Python
Python模拟百度自动输入搜索功能的实例
Feb 14 #Python
You might like
基于simple_html_dom的使用小结
2013/07/01 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
layui表格数据重载
2019/07/27 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Python标准库defaultdict模块使用示例
2015/04/28 Python
python实现对一个完整url进行分割的方法
2015/04/29 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
scrapy头部修改的方法详解
2020/12/06 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
C#面试题
2016/05/06 面试题
水产养殖学应届生求职信
2013/09/29 职场文书
大学生毕业自我鉴定
2013/11/06 职场文书
怎样写留学自荐信
2013/11/11 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
西安事变观后感
2015/06/12 职场文书
小学数学教学随笔
2015/08/14 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL