Envoi de la commande enter par Telnet
Bonsoir,
j'utilise la classe org.apache.commons.net.telnet pour la connexion telnet.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
class telnet_codec
{
private TelnetClient telnet = new TelnetClient();
private InputStream in;
private PrintStream out;
private String prompt1 = "<0>";
private String prompt = "->";
public telnet_codec(String server, String password)
{
try
{
telnet.connect(server, 23);
in = telnet.getInputStream();
out = new PrintStream(telnet.getOutputStream());
readUntil("Password: ");
write(password);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public String readUntil(String pattern)
{
try
{
char lastChar = pattern.charAt(pattern.length() - 1);
StringBuffer sb = new StringBuffer();
boolean found = false;
char ch = (char)in.read();
while(true)
{
System.out.print(ch);
sb.append(ch);
if(ch == lastChar)
{
if(sb.toString().endsWith(pattern))
{
return sb.toString();
}
}
ch = (char)in.read();
}
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
public void write(String value)
{
try
{
out.println(value);
out.flush();
System.out.println(value);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public String sendEnter (String info)
{
try
{
readUntil(prompt1);
write("\n");
return readUntil(prompt);
}
catch(Exception e)
{
e.printStackTrace();
}
return null
}
public String sendCommand(String prompt, String command)
{
try
{
readUntil(prompt);
write(command);
return readUntil(prompt);
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
public void disconnect()
{
try
{
telnet.disconnect();
}
catch(Exception e)
{
e.printStackTrace();
}
}
} |
Je dois envoyer la touche ENTER, pour obtenir le prompt d'envoi de commande.
J'utilise la recherche de <0> afin d'envoyer ENTER pour obtenir le prompt ->.
Mon problème je ne trouve pas comment envoyer la commande ENTER par telnet.
Merci de votre aide