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实现连接postgresql数据库的方法分析
Dec 27 Python
python调用百度语音识别api
Aug 30 Python
对Python 3.5拼接列表的新语法详解
Nov 08 Python
python requests爬取高德地图数据的实例
Nov 10 Python
详解python中的Turtle函数库
Nov 19 Python
python程序封装为win32服务的方法
Mar 07 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
python GUI图形化编程wxpython的使用
Jul 19 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
Pycharm安装第三方库失败解决方案
Nov 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
微信小程序实现运动步数排行功能(可删除)
2018/07/05 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
python使用7z解压apk包的方法
2015/04/18 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
Python如何对齐字符串
2020/07/30 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
网络体系结构及协议的定义
2014/03/13 面试题
护士岗前培训自我评鉴
2014/02/28 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
师德师风个人总结
2015/02/06 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
一起来学习Python的元组和列表
2022/03/13 Python
Hive导入csv文件示例
2022/06/25 数据库