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刷投票的脚本实现代码
Nov 08 Python
在Python的Django框架中用流响应生成CSV文件的教程
May 02 Python
python如何获取服务器硬件信息
May 11 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
对python中类的继承与方法重写介绍
Jan 20 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
基于python实现查询ip地址来源
Jun 02 Python
python实现取余操作的简单实例
Aug 16 Python
python使用建议与技巧分享(二)
Aug 17 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 Python
一篇文章弄懂Python关键字、标识符和变量
Jul 15 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
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
js中bool值的转换及“&&”、“||”、 “!!”详解
2017/12/21 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
angular4笔记系列之内置指令小结
2018/11/09 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
python如何实现DES加密
2020/09/21 Python
护士实习自我鉴定
2013/10/22 职场文书
写自荐信要注意什么
2013/12/26 职场文书
办公室秘书自我鉴定
2014/01/18 职场文书
森林防火工作方案
2014/02/14 职场文书
《春笋》教学反思
2014/04/15 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
500字小学生检讨书
2015/02/19 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
你会写请假条吗?
2019/06/26 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python