从服务器接收第二个答案通过Python套接字
问题描述:
我的目标 - 我有以下情况。当我用netcat/telnet连接到一个端口时,发生以下“对话”:从服务器接收第二个答案通过Python套接字
服务器:给我你的pincode。
客户:******
服务器:错误(或好)
出于安全测试目的我想脚本此任务。我已经通过Bash成功完成了这个任务,但我也会尝试用python来完成。
我的脚本
import socket
for i in range(1000,9999):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost',31337))
s.send (i) # send pincode to server
answerfromserver = s.recv(1024)
print answerfromserver
s.close
我的问题&问题 我只收到第一个答案从服务器(“给我你的PIN码”),我不能接受第二个答案(如果PIN码是正确的/错误的)。谁能帮我完成这件事?
答
试试这个,注意到了,当第二个答案是好的,我不关闭套接字,让你做你的东西:
import socket
for i in range(1000, 9999):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 31337))
answerfromserver = None
while True:
answerfromserver = s.recv(1024)
if answerfromserver:
if answerfromserver == "give me your pincode":
print answerfromserver
s.send(i)
else:
print i, answerfromserver
break
if answerfromserver == 'Good':
# stuff
break
else:
s.close()
+0
谢谢,它挂起了“answerfromserver = s.recv(1024)”这一段时间的第二次迭代,等待来自服务器的Good/Bad pincode答案。由于某些原因,我无法使用Python工作。这不是服务器问题,因为它适用于netcat和bash脚本 – sahdjksajkd
因为你reveive它 –
谢谢你之前关闭套接字。但是我怎样才能把它和for循环结合起来呢。我如何开发脚本以在接下来的循环迭代之前接收(recv())两次? – sahdjksajkd
好的等待我正在写一个完整的答案 –