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 相关文章推荐
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
Apr 11 Python
进一步理解Python中的函数编程
Apr 13 Python
Python实现购物车购物小程序
Apr 18 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
Python列表(List)知识点总结
Feb 18 Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 Python
python  logging日志打印过程解析
Oct 22 Python
python全局变量引用与修改过程解析
Jan 07 Python
Python模块 _winreg操作注册表
Feb 05 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
Apr 10 Python
Python如何用wx模块创建文本编辑器
Jun 07 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
Mar 03 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
微信公众平台开发之天气预报功能
2015/08/31 PHP
详解php中 === 的使用
2016/10/24 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python Requests安装与简单运用
2016/04/07 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
python config文件的读写操作示例
2019/09/27 Python
python梯度下降算法的实现
2020/02/24 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
专业实习自我鉴定
2013/10/29 职场文书
法制宣传日活动总结
2014/04/29 职场文书
选秀节目策划方案
2014/06/06 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
Java 多线程并发FutureTask
2022/06/28 Java/Android