30/09/2018, 22:30

Ứng dụng Python trong Networking

Em mới học về Python và muốn tìm hiểu về ứng dụng của nó trong Networking. Nhưng khi tìm hiểu thì gặp một số vướng mắc. Cụ thể là:

  1. Xây dựng code Python thiết lập kết nối TCP port 23 đến một thiết bị router (dựng GNS3, kết nối router đến máy ảo Linux có python)

Code:

import getpass
import sys
import telnetlib

HOST = "192.168.0.1"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until("login: ")
tn.write(user + "
")
if password:
    tn.read_until("Password: ")
    tn.write(password + "
")

tn.write("ls
")
tn.write("exit
")

print tn.read_all()

Nhưng khi đăng nhập "Enter your remote account: ", “Password” lại không hiện thị ra kết quả, mọi người xem giúp e có sai chỗ nào không?
2. Sau khi đã thiết lập kết nối Telnet đến router, xây dựng code python như thế nào để show running-config và lấy phản hồi thông tin config lưu vào một file nào đó
Em xin chân thành cảm ơn!

Quang Đức viết 00:45 ngày 01/10/2018

Up! Mọi người có ai giúp được em không ạ!

Anh Tú viết 00:46 ngày 01/10/2018

Cái này mình nghĩ bạn nên lên StackOverflow hỏi thì hơn, tại chắc ở forum mình ít người làm về lĩnh vực này lắm.

htl@PyMI.vn viết 00:39 ngày 01/10/2018

bạn có thể paste/chụp ảnh màn hình kết quả khi bạn gõ telnet đến 192.168.0.1 lên đây được không?

Jack Vo viết 00:35 ngày 01/10/2018

tn.read_until("Password: ") bạn bỏ space ở trong ngoặc xem sao -> tn.read_until("Password:"). Thường thì có dòng thiết bị nó là password ko viết hoa chữ P. Nên tốt nhất bạn phải show cái output khi trực tiếp telnet vào router để debug.

Jack Vo viết 00:30 ngày 01/10/2018

1.Bạn chưa nói OS đang sử dụng là gì ? Mặc định Windows 7 nó ko install telnet.
2.Nếu có command telnet rồi thì chạy raw bằng cách telnet trực tiếp đến router. Đọc lại đoạn dưới, xem có phải dư ký tự space ko ?

tn.read_until("Password: ") bạn bỏ space ở trong ngoặc xem sao -> tn.read_until("Password:").
 Thỉnh thoảng có dòng thiết bị nó là `password` ko viết hoa chữ P. Nên tốt 
nhất bạn phải show cái output khi trực tiếp telnet vào router để debug.

3.Có thể dùng subprocess để gọi lên telnet thực thi câu lệnh. Google please.

Bài liên quan
0