????

???????????????????????????

????    ????????????telnetlib.Telnet????fp  -->> ??????????????(w+:)?????????? login:??username??)

????    -->> ????????? -->>???????(w+:)???????passwd:??Password:) -->> ????????  ->> ???(w+:)?????????????????

????    ?????????????????expect??????????????????????????????????б????????????????????????????????????????

????????????????tuple????????????????????????0?????????????????match????????????????????????????(???????????)

??????????е????

?????????棺

?????????????????????????????????????????????????????У?‘bo'??’lo'?????????????????б???‘lo'???????????????????’lo'??

?????????????????????Patator??????telnet???????????????

??????????????????ó???????????????????????????

??????????·??????????????????????????淵?????????????λ???????????????????????????????????ε??????????????????????????????????????????????????

?????????′???

import telnetlib

class telnet_check:
 def __init__(self??host??port=23??timeout=10):
  self.host=host
  self.port=port
  self.timeout=timeout
  self.promote='w+:'
  self.errmsg=''
  self.geterrmsg()

 def connect(self):
  return telnetlib.Telnet(self.host??self.port??self.timeout)

 def geterrmsg(self):
  f=self.connect()
  f.expect([self.promote]??self.timeout)
  f.write('nullnull ')
  f.expect([self.promote]??self.timeout)
  f.write('nullnull ')
  _??_??self.errmsg=f.expect([self.promote]??self.timeout)
  self.errmsg=self.errmsg.strip()


 def check(self??User??Passwd):
  t=self.connect()
  t.expect([self.promote]??self.timeout)
  t.write(User+' ')
  _??_??p=t.expect([self.promote]??self.timeout)
  if p.strip() == self.errmsg:
   return False
  t.write(Passwd+' ')
  _??_??loginmsg=t.expect([self.promote]??self.timeout)
  loginmsg=loginmsg.strip()
  if self.errmsg != '' and self.errmsg != loginmsg:
   return True
  else:
   return False


if __name__=='__main__':
 tn=telnet_check('127.0.0.1')
 print tn.check('yihaibo'??'1')
 print tn.check('root'??'root')
 print tn.check('admin'??'admin')