telnet to switch by java

use jar:commons-net-3.5-bin

code:

package jiankongLinux;

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;

import org.apache.commons.net.telnet.TelnetClient;

public class telnet2{
//	private TelnetClient telnet = new TelnetClient();
    private static InputStream in;
    private static PrintStream out;
    private static final String DEFAULT_AIX_PROMPT = "#";  
    private static final String ENTER_COMMAND_ARROW = ">";  
    private static final String ENTER_COMMAND_BRACKETS = "]";  
    private static final String ENTER="\n"; 
    public static void main(String[] args) {
    	TelnetClient telnet = new TelnetClient();
    	try {
			telnet.connect("192.168.10.100",Integer.parseInt("23"));
			in = telnet.getInputStream();  
            out = new PrintStream(telnet.getOutputStream()); 
            telnet.setKeepAlive(true); 
            String msg=readUntil("login:");  
            write("S1");
            msg=readUntil("Password:"); 
            write("123456");
            msg=readUntil(ENTER_COMMAND_ARROW); 
            write("dis vlan b");
//            write(ENTER);
            int spacetime=1;
            while(spacetime<20){
            	write(" ");
            	spacetime=spacetime+1;
            }
            msg=readUntil("<");
            System.out.println(msg);
            telnet.disconnect();
		} catch (NumberFormatException | IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    public static String readUntil(String pattern) {  
        try {  
            char lastChar = pattern.charAt(pattern.length() - 1);  
            StringBuffer sb = new StringBuffer();  
            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 static void write(String value) {  
        try {  
            out.println(value);  
            out.flush();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}
python:
import telnetlib
import getpass
import sys

HOST = "192.168.10.100"
user = "S1"
password = "123456"
spacetime = 1

tn = telnetlib.Telnet(HOST)
tn.read_until("login:")
tn.write(user+"\n")
tn.read_until("Password:")
tn.write(password+"\n")
tn.read_until(">")
tn.write("sys\n")
#tn.read_until("Password:")
#tn.write(password+"\n")
tn.read_until("]")
tn.write("dis curr\n")
while spacetime <= 20:
    tn.write(" ")
    spacetime = spacetime + 1 
msg=tn.read_until("return")
tn.write("quit\n")

path = r"d:\config.txt"
f = file(path,"wb")
f.write(msg)
f.close()

tn.close


that's all!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值