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系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
python进阶教程之函数参数的多种传递方法
Aug 30 Python
Python写的一个定时重跑获取数据库数据
Dec 28 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
Python常见数据结构之栈与队列用法示例
Jan 14 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
python实现大学人员管理系统
Oct 25 Python
利用keras加载训练好的.H5文件,并实现预测图片
Jan 24 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
Feb 12 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
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
javascript代码加载优化方法
2011/01/30 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
Python文件和目录操作详解
2015/02/08 Python
使用Python读取大文件的方法
2018/02/11 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
使用Python进行目录的对比方法
2018/11/01 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
应聘面试自我评价
2014/01/24 职场文书
陈欧广告词
2014/03/14 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
护校行动方案
2014/05/31 职场文书
会计电算化专业求职信
2014/06/10 职场文书
2014年度考核工作总结
2014/12/24 职场文书
追悼会答谢词
2015/01/05 职场文书
经费申请报告
2015/05/15 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
Python绘制散乱的点构成的图的方法
2022/04/21 Python
python如何读取和存储dict()与.json格式文件
2022/06/25 Python