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执行子进程实现进程间通信的方法
Jun 02 Python
在Python中定义和使用抽象类的方法
Jun 30 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
点球小游戏python脚本
May 22 Python
python实现最大优先队列
Aug 29 Python
用Python解数独的方法示例
Oct 24 Python
Python 下载及安装详细步骤
Nov 04 Python
django实现日志按日期分割
May 21 Python
python将字典内容写入json文件的实例代码
Aug 12 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 Python
Python使用pyenv实现多环境管理
Feb 05 Python
PyTorch中的torch.cat简单介绍
Mar 17 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
德生PL330测评
2021/03/02 无线电
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
微信小程序之GET请求的实例详解
2017/09/29 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
python小技巧之批量抓取美女图片
2014/06/06 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
Eclipse面试题
2014/03/22 面试题
服装设计专业求职信
2014/06/16 职场文书
班级团队活动方案
2014/08/14 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
在Python中如何使用yield
2021/06/07 Python