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与shell的3种交互方式介绍
Apr 11 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
Python基于有道实现英汉字典功能
Jul 25 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
python实现用户管理系统
Jan 10 Python
Python 字符串与数字输出方法
Jul 16 Python
python第三方库学习笔记
Feb 07 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
keras实现VGG16 CIFAR10数据集方式
Jul 07 Python
Python Unittest原理及基本使用方法
Nov 06 Python
详解matplotlib绘图样式(style)初探
Feb 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
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
php生成静态页面的简单示例
2014/04/17 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Python实现的简单发送邮件脚本分享
2014/11/07 Python
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
聊聊python中的循环遍历
2020/09/07 Python
pycharm 的Structure界面设置操作
2021/02/05 Python
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
美丽心灵观后感
2015/06/01 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis