我正致力於將這一小段Python代碼調整爲我自己的用途(它來自sendpkm DNS欺騙工具,用於將原始神奇寶貝DS遊戲的DNS請求重定向到自己的計算機)需要了解這塊Python
def dnsspoof():
s=socket.socket(); s.connect(("bash.org",80));
me="".join(chr(int(x)) for x in s.getsockname()[0].split("."))
print "Please set your DS's DNS server to",s.getsockname()[0]
dnsserv=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
dnsserv.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
dnsserv.bind(("0.0.0.0",53))
while True:
r=dnsserv.recvfrom(512)
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('4.2.2.2', 53))
s.send(r[0])
rr=s.recv(512)
if "gamestats2" in rr: rr=rr[:-4]+me
dnsserv.sendto(rr, r[1])
serv=None
log=None
有人會這麼友好地引導我通過套接字並解釋這是如何返回一個DNS查詢的IP?我只是在學習Python。
謝謝!這個解釋幫助我極大地理解了代碼。 所以 –
現在我需要弄清楚的是如何操作這段代碼來發送特定地址的特定IP。我想我必須對代碼做更多的更改才能做到這一點,但感謝您幫助我處理與套接字相關的代碼。 –
@AustinBurk:你的意思是你必須寫一個DNS代理而不是原始字節代理?您可能需要考慮使用預製的DNS服務器,而不是自己寫。 – abarnert