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进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 Python
python持久性管理pickle模块详细介绍
Feb 18 Python
python结合API实现即时天气信息
Jan 19 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
Python使用LDAP做用户认证的方法
Jun 20 Python
Python 读取串口数据,动态绘图的示例
Jul 02 Python
Django后端接收嵌套Json数据及解析详解
Jul 17 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 Python
如何在python中处理配置文件代码实例
Sep 27 Python
如何在scrapy中集成selenium爬取网页的方法
Nov 18 Python
python实现图片转字符画
Feb 19 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
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
JS使用parseInt解析数字实现求和的方法
2015/08/05 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
django如何通过类视图使用装饰器
2019/07/24 Python
python tkinter组件摆放方式详解
2019/09/16 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
儿科护士实习自我鉴定
2013/10/17 职场文书
高中生自我评价个人范文
2013/11/09 职场文书
高一自我鉴定
2013/12/17 职场文书
团工委书记自荐书范文
2013/12/17 职场文书
庆元旦广播稿
2014/02/10 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
工作检讨书大全
2015/01/26 职场文书
共青团员自我评价
2015/03/10 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
全网非常详细的pytest配置文件
2022/07/15 Python