telnet_h3c_ap

import telnetlib
import time
# 定义交换机参数
HOSTS = ['10.61.168.x', ]


for HOST in HOSTS:
    tn = telnetlib.Telnet(HOST,timeout=22)
    tn.read_until(b"Password: ")
    tn.write("h3capadmin".encode('ascii') + b"\n")  ##h3c默认密码
    time.sleep(0.2)
    tn.write(b"display  current-configuration  | include  wlan\n") ##执行的命令
    time.sleep(4.5)
    output_bytes =  tn.read_very_eager()  #尽可能多地读取所有可用的数据
    req = output_bytes.decode('ascii').replace('\r', '') #bytes转str
    ips = []
    for line in req.splitlines():
        if not line.strip().startswith('wlan ac ip'):continue
        ip = line.split(' ')[-1]
        ips.append(ip)
        # print(ip)
    
    tn.close()

  • 立即读取tn.read_very_eager() 会尽可能多地读取所有可用的数据,而不会阻塞或等待更多的数据到达。这意味着它会立即返回当前缓冲区中的所有数据。
  • 非阻塞:与 tn.read_all() 不同,后者会等待直到连接关闭才返回数据,tn.read_very_eager() 是非阻塞的,只返回当前可用的数据。

     

其他读取方法对比

  1. tn.read_all():读取所有数据,直到连接关闭。这是一个阻塞调用,适用于一次性读取大量数据的场景。
  2. tn.read_some():读取一些数据,如果没有数据可读则阻塞。适用于需要逐步读取数据的场景。
  3. tn.read_until(expected, timeout=None):读取数据直到遇到预期的字符串(expected)或超时。适用于等待特定响应的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值