any telnetlib equivalent in Python for rlogin?
Martin Franklin
mfranklin1 at gatwick.westerngeco.slb.com
Tue Nov 11 05:19:35 EST 2003
On Tue, 2003-11-11 at 04:22, walala wrote:
> Dear all,
>
> I recently came across a Python program which used "telnetlib" to automate
> things in the several unix machines in our local networks; I attached the
> script as follows;
>
> I wonder if it is possible to have the equivlent libary for "rlogin" in
> Python? Because our local networks support only SSH or RLOGIN. This script
> used Telnet so it could not be used in our local networks;
>
> Considering I am quite new to Python, is there any way that I can easily
> change this program to be used on "rlogin"? For example, is there a library
> called "RLOGIN" that I can simply use self.tn = tn =
> rloginlib.Rlogin(self.host), or something like that?
>
> Thanks a lot,
>
> -Walala
>
Walala,
There is no standard ssh or rlogin module in the python standard library
I guess twisted has both (a quick google for twisted python could tell
you).
You don't mention what platform you are running on but if it's a *nix
then you could use pexpect (again google will tell you where to find
pexpect) to 'simulate' ssh like so:-
import pexpect
import sys
import re
import os
PROMPT = "\$|\%|\>"
class SSH:
def __init__(self, user, password, host):
self.child = pexpect.spawn("ssh %s@%s"%(user, host))
i = self.child.expect(['assword:', r"yes/no"], timeout=120)
if i==0:
self.child.sendline(password)
elif i==1:
self.child.sendline("yes")
self.child.expect("assword:", timeout=120)
self.child.sendline(password)
self.child.expect(PROMPT)
def command(self, command):
"""send a command and return the response"""
self.child.sendline(command)
self.child.expect(PROMPT)
response = self.child.before
return response
def close(self):
"""close the connection"""
self.child.close()
if __name__=="__main__":
import getpass
password = getpass.getpass("Password: ")
ssh = SSH("RemoteUsername", password, "RemoteHost")
print ssh.command("pwd")
Cheers
Martin
--
Martin Franklin <mfranklin1 at gatwick.westerngeco.slb.com>
More information about the Python-list
mailing list