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 self,cls,decorator的理解
Jul 13 Python
python生成器表达式和列表解析
Mar 10 Python
Python实现屏幕截图的代码及函数详解
Oct 01 Python
Python模拟脉冲星伪信号频率实例代码
Jan 03 Python
python Opencv将图片转为字符画
Feb 19 Python
python按照多个条件排序的方法
Feb 08 Python
django 模版关闭转义方式
May 14 Python
将keras的h5模型转换为tensorflow的pb模型操作
May 25 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
如何学习Python time模块
Jun 03 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
CI(CodeIgniter)框架介绍
2014/06/09 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
python实现SOM算法
2018/02/23 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
python递归全排列实现方法
2018/08/18 Python
python绘制中国大陆人口热力图
2018/11/07 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
python dict乱码如何解决
2020/06/07 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
绝对经典成功的大学生推荐信
2013/11/08 职场文书
网络信息管理员岗位职责
2014/01/05 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
大学生求职意向书
2015/05/11 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
nginx结合openssl实现https的方法
2021/07/25 Servers