李凡现状(李凡希的Blog | Free as in Freedom)
导读:5. 写Python脚本,建假DNS。把下面的内容存为C:\FakeDNS.py。同样,其中的192.168.8.102为A电脑的IP地址,请自行替换...
5. 写Python脚本 ,建假DNS 。把下面的内容存为C:\FakeDNS.py 。同样 ,其中的192.168.8.102为A电脑的IP地址,请自行替换 。
#! /usr/bin/env python # This code comes from # http://code.activestate.com/recipes/491264-mini-fake-dns-server/ # with some modifications import socket class DNSQuery: def __init__(self, data): self.data=data self.domain= tipo = (ord(data[2]) >> 3) & 15 if tipo == 0: ini=12 lon=ord(data[ini]) while lon != 0: self.domain+=data[ini+1:ini+lon+1]+. ini+=lon+1 lon=ord(data[ini]) def respuesta(self, ip): packet= if self.domain: packet+=self.data[:2] + "\x81\x80" packet+=self.data[4:6] + self.data[4:6] + \x00\x00\x00\x00 packet+=self.data[12:] packet+=\xc0\x0c packet+=\x00\x01\x00\x01\x00\x00\x00\x3c\x00\x04 packet+=str.join(,map(lambda x: chr(int(x)), ip.split(.))) return packet if __name__ == __main__: udps = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) udps.bind((,53)) try: while 1: data, addr = udps.recvfrom(1024) p = DNSQuery(data) if p.domain == res.gk.sdo.com.: ip = 192.168.8.102 else: ip = socket.gethostbyname(p.domain) udps.sendto(p.respuesta(ip), addr) print p.domain + "=>" + ip except KeyboardInterrupt: udps.close()6. 启动假DNS
在命行提示符中运行:
C:\Python27\python.exe C:\FakeDNS.py
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!