Which Python code is used to capture username from a Cisco Router through a prompt in Python 3?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "tn.read_until(b"Username: ")". Câu hỏi dùng module telnetlib: sau khi tạo đối tượng tn = telnetlib.Telnet(host), phương thức read_until đọc dữ liệu từ kết nối cho tới khi gặp đúng chuỗi byte được chỉ định, nên phải truyền đúng dấu nhắc (prompt) mà thiết bị in ra; router Cisco khi bật xác thực đăng nhập in dấu nhắc mặc định là chữ Username, dấu hai chấm và một dấu cách, sau đó script mới gửi tên người dùng bằng tn.write. Trong Python 3 đối số phải là kiểu bytes nên có tiền tố b. "tn.read_until(b"Login:")" chờ chuỗi Login mà router Cisco không in theo mặc định, nên lệnh sẽ đứng chờ tới hết thời gian chờ. "tn.read_until(b"user: ")" sai chữ: read_until so khớp từng byte và phân biệt hoa thường, mà dấu nhắc thật bắt đầu bằng U hoa và có chữ name. "tn.read_until(b"user:")" sai tương tự, lại thiếu cả dấu cách sau dấu hai chấm. Lưu ý telnetlib bị đánh dấu lỗi thời từ Python 3.11 và đã bị gỡ khỏi thư viện chuẩn ở Python 3.13 (PEP 594), nên mã này chỉ chạy trên phiên bản cũ hơn; ngày nay thường dùng SSH qua Paramiko hoặc Netmiko.

Cùng phần 3

Xuất hiện trong 2 bộ đề