私はPythonを初めて使用します。場合によっては、「telenet」デバイスIPにスクリプトを記述し、telnetが失敗した場合はSSH username@deviceIpを記述します。
すべてのTelnetIPで完全に機能します。しかし、「ssh admin@153.88.127.21」を実行すると、以下のコードが失敗し、sshデバイスの「socket.error」のようにブロック自体を試すとエラーが発生します。
telnet Ipがtryブロックで失敗した場合、sshデバイスをelseブロックに入れたい。
私のMain.pyファイルで
try:
#TELNET MODULE CALL
tn= _telnetMOD._telnet(username, password, device)
break
else:
#SSH MODULE CALL
ssh= _sshMOD._ssh(username, password, device)
_telnetModファイルには、インポートtelnetlibが機能する以下のコードがあります。
def _telnet(_userVar,_passwordVAR, _device):
tn=''
tn = telnetlib.Telnet(_device,23)
#PYTHON VERSION 2.6 AND HIGHER
tn.read_until("Username: ",10)
tn.write(_userVar + "\r")
if _passwordVAR:
tn.read_until("Password: ",10)
tn.write(_passwordVAR + "\r")
return tn
_sshMODファイルに以下のコードがありますが失敗し、以下のコードがわかりません
import paramiko
def _ssh(_userVar,_passwordVAR, _device):
ssh=''
ssh= paramiko.SSHClient()
ssh.connect(_device, username=_userVar,password=_passwordVAR)
return ssh