2015/6/19 Python实现DNS服务器(Pyhon域名解析服务器)bybreeze博客频道CSDN.NET
http://blog.csdn.net/trbbadboy/article/details/8093256 1/5
分类:Python源代码网络编程
上微信头条,C币就是你的又见人月神话最流行的语言想学就学写博文,传代码,赚C币
Python实现DNS服务器(Pyhon域名解析服务器)
2012102016:03 4172人阅读 评论(0) 收藏 举报
dns服务器 python 服务器 query class
[python]viewplain copy print ?
01. #!/usr/bin/envpython
02. #‐*‐coding:utf‐8‐*‐
03. #@Date:2014‐06‐2903:01:25
04. #@Author:YourName(you@example.org)
05. #@Link:http://example.org
06. #@Version:$Id$
07.
08. importSocketServer
09. importstruct
10. importsocketassocketlib
11. #DNSQuery
12. classSinDNSQuery:
13. def__init__(self,data):
14. i=1
15. self.name=''
16. whileTrue:
17. d=ord(data[i])
18. ifd==0:
19. break;
20. ifd<32:
21. self.name=self.name+'.'
22. else:
23. self.name=self.name+chr(d)
24. i=i+1
25. self.querybytes=data[0:i+1]
26. (self.type,self.classify)=struct.unpack('>HH',data[i+1:i+5])
27. self.len=i+5
28. defgetbytes(self):
29. returnself.querybytes+struct.pack('>HH',self.type,self.classify)
30.
31. #DNSAnswerRRS
32. #thisclassisalsocanbeuseasAuthorityRRSorAdditionalRRS
33. classSinDNSAnswer:
34. def__init__(self,ip):
35. self.name=49164
36. self.type=1
37. self.classify=1
38. self.timetolive=190
39. self.datalength=4
40. self.ip=ip
41. defgetbytes(self):
42. res=struct.pack('>HHHLH',self.name,self.type,self.classify,self.timetolive,self.datalength)
43. s=self.ip.split('.')
44. res=res+struct.pack('BBBB',int(s[0]),int(s[1]),int(s[2]),int(s[3]))
45. returnres
46.
47. #DNSframe
48. #mustinitializedbyaDNSqueryframe
49. classSinDNSFrame:
50. def__init__(self,data):
原创:
转载:
译文:
评论:
个人资料
RobinTang
访问:
积分:
等级:
排名:
文章搜索
文章分类
C/C++
Java
C#
ASP.NET
算法
Windows
Linux
软件发布
服务器
软件工程
Shell
数据库
Javascript
软件问题
嵌入式
源代码
网络编程
PHP
网站
TCP/IP
Python
Android
J2ME
目录视图 摘要视图 订阅
bybreeze
253216次
3432
第4382名
84篇
9篇
0篇
139条
(4)
(16)
(10)
(0)
(1)
(15)
(9)
(0)
(4)
(1)
(2)
(1)
(3)
(2)
(2)
(17)
(7)
(10)
(6)
(2)
(19)
(8)
(0)