본문 바로가기

파이썬 코드

Network automation -2-

import time
import paramiko, time
import socks
from getpass import getpass

def juniper_parse(ip_a, u_id, u_pas,find_words):
    try:    
        #socks config
        sock=socks.socksocket()
        sock.set_proxy(
        proxy_type=socks.SOCKS5,
        addr="Socks Server IP",
        port=Socks Server Port,
        username="Socks Server ID",
        password="Socks Server Password")

        #sock ssh connect
        sock.connect((ip_a,22))
                
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(ip_a, username=u_id, password=u_pas, sock=sock)
        
        print("Connected Complete")
        #interactive shell 선언
        connection = ssh.invoke_shell()

        time.sleep(3)            
        connection.send("set cli screen-length 0\n")
        
        time.sleep(1)
        connection.send("show interface ter\n")
        time.sleep(1)
        
        data = connection.recv(65535)
        data = (data.decode())
        ssh.close()
        with open("juniper_rawdata.txt", 'a', newline="") as f:
            f.write(str(data))

        with open ("juniper_rawdata.txt") as f,open ("juniper_data.txt","w") as save_file:
            for line in f:
                if any (x in line for x in find_words):
                    save_file.write(line)
        
    except Exception as ex:
        print("연결오류",ex)



with open ("연결 대상 장비 리스트.txt") as f:
    content=f.read().splitlines()

u_id = input("Enter your Username:")
if not u_id:
    u_id = "admin"
    print(f"if you No Username input please Enter to keep goning default ID {u_id}")

u_pas= getpass(f"Enter Password of the user {u_id}: ")or "admin"   

find_words = ["down",u_id]
        
for device in content:
    print(device)
    juniper_parse(device, u_id, u_pas,find_words)

해당 코드는 Socks Proxy를 사용는 네트워크 장비에 접속하기 위한 자동화 코드 1차로 RAW Data에 커맨드 결과물을

저장 후 find_word에 적혀있는 단어가 있는 line 추출하여 엑셀에 저장하는 코드 

해당 코드 실행시 텍스트파일에 있는 IP 정보를 불러와 ID 와 Password를 입력 받은 후 주니퍼 장비에 접속하여 show interface ter  명령어 실행 후 다운된 인터페이스 만을 추려 엑셀파일로 저장

'파이썬 코드' 카테고리의 다른 글

networkautomation -3-  (0) 2023.02.23
텍스트 파일에서 주니퍼 장비 정보 파싱하기  (0) 2023.02.22
Network automation  (0) 2023.02.14
파이썬을 이용한 NMAP 사용  (0) 2023.02.12
파이썬 무작위 대입공격 도구  (0) 2023.02.12