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 09 Python
python中 logging的使用详解
Oct 25 Python
python对html过滤处理的方法
Oct 21 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
python3人脸识别的两种方法
Apr 25 Python
python numpy中cumsum的用法详解
Oct 17 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 Python
python集合能干吗
Jul 19 Python
python opencv实现简易画图板
Aug 27 Python
python 解决pycharm运行py文件只有unittest选项的问题
Sep 01 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 MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
Vue自定义指令实现checkbox全选功能的方法
2018/02/28 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
PyQt5组件读取参数的实例
2019/06/25 Python
python word转pdf代码实例
2019/08/16 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
增大python字体的方法步骤
2020/07/05 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
大四学年自我鉴定
2013/11/13 职场文书
2014年自我评价
2014/01/04 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
春季防火方案
2014/05/10 职场文书
工地标语大全
2014/06/18 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
云冈石窟导游词
2015/02/04 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
公司考勤管理制度
2015/08/04 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书