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中format()函数的简单使用教程
Mar 14 Python
python实现将一个数组逆序输出的方法
Jun 25 Python
python 在sql语句中使用%s,%d,%f说明
Jun 06 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
Jun 23 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
基于python实现坦克大战游戏
Oct 27 Python
Python Pandas数据分析工具用法实例
Nov 05 Python
Python基于Socket实现简易多人聊天室的示例代码
Nov 29 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
那些年一起学习的PHP(一)
2012/03/21 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
jquery 可排列的表实现代码
2009/11/13 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
JS跨域问题详解
2014/11/25 Javascript
javascript表单验证大全
2015/08/12 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
加快Vue项目的开发速度的方法
2018/12/12 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
python根据文件大小打log日志
2014/10/09 Python
python执行子进程实现进程间通信的方法
2015/06/02 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
django+mysql的使用示例
2018/11/23 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
解决python3输入的坑——input()
2020/12/05 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
教学实习自我评价
2014/01/28 职场文书
2014年幼儿园植树节活动方案
2014/03/02 职场文书
市场调查策划方案
2014/06/10 职场文书
六五普法宣传标语
2014/10/06 职场文书
2014年药房工作总结
2014/11/22 职场文书
毕业实习感受与体会
2015/05/26 职场文书
php引用传递
2021/04/01 PHP