bonjour,
je viens a vous de nouveau. j'ai codé un programme qui me connecte a un serveur via telnet, tel que celui-ci:
ici ma fonction ecriture:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public class telnet { private TelnetClient telnet = new TelnetClient(); private InputStream in; private PrintStream out; private String prompt ="#"; public telnet(String server, String user, String password){ try{ //connexion au serveur telnet.connect(server,23); // recuperation des infos in = telnet.getInputStream(); out= new PrintStream(telnet.getOutputStream()); // log utilisateur readUntil("login: "); write(user); readUntil("Password: "); write(password); write("utoken"); for(int i=0; i<10;i++){ write("\n"); } write("ls"); readUntil(prompt + ""); disconnect(); }catch(Exception ev){ ev.printStackTrace(); } }
fonction deconnection
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public void write(String value){ try{ out.println(value); out.flush(); System.out.println(value); }catch(Exception e){ e.printStackTrace(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void disconnect(){ try{ telnet.disconnect(); }catch(Exception e){ e.printStackTrace(); } }bon jusqu'ici tout fonctionne, là j'envoie mon login, password, et ma commande "utoken". cette derniere me renvoie tous les utilisateurs qui utilisent le serveur et leur activité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public void su(String password){ try{ write("su"); readUntil("Password: "); write(password); prompt = "#"; readUntil(prompt + ""); }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.append(ch); sb.append(ch); System.out.println(" / "); if(ch == lastChar){ if(sb.toString().endsWith(pattern)){ return sb.toString(); } } ch=(char) in.read(); } }catch(Exception e){ e.printStackTrace(); } return null; }
Mon probleme est que je voudrais récupérer ce flux d'info et les inscrire dans un texte pour les traiter. j'ai essayer plein de truc genre :
Que j'incorpore dans le public telnet().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public void recuperer(){ try{ InputStream is =telnet.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); String s = File.separator; File file= new File("D:"+ s +"local"+s+"er82467"+s+"Autre"+s+"server_response.rtf"); FileWriter fw = new FileWriter(file); fw.write(bis.toString()); fw.close(); }catch(Exception e){ e.printStackTrace(); } }
Bah jme doute que l'on va meou
, que ce que j'ai fait c'est du n'importe quoi et que sa marche pas ! j'ai tenté sans trop savoir où je mettais les pieds. mais bon faut bien expérimentez quand on sait pas !
Partager