본문 바로가기

파이썬 코드

Network automation

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

def juniper_parse(ip_a, u_id, u_pas, command):
        #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(("SSH 연결 IP",22))
                
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect("1차 연결 IP", username=u_id, password=u_pas, sock=sock)
        
        #interactive shell 선언
        connection = ssh.invoke_shell()
        print("core 연결 완료")
        for ip in ip_a: 
            time.sleep(0.5)          
            connection.send(f"ssh {ip}\n")
            time.sleep(2)
            connection.send(f"{u_pas}\n")
            time.sleep(1)
            print(f"{ip} connectecd complete ")
            time.sleep(1)
            for cmd in command:
                time.sleep(0.5)
                connection.send(cmd)
                time.sleep(0.5)
                print(f"{ip} Send command complete ")


                data = connection.recv(65535)
                data = (data.decode())
                with open("juniper_data.txt", 'a',newline="") as f:
                    f.write(str(data))
        ssh.close()
        
with open ("2차 연결 대상장비 리스트.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"    
        
command = ("show system alarm\n", "show chassis alarm\n", "exit\n")
juniper_parse(content, u_id, u_pas, command)

 

 

이 코드는 장비에 바로 SSH 연결이 되는 것이 아니라 특정 장비에 SSH 접속 후 텍스트 파일에 있는 IP 정보를 불러와 SSH 연결을 한번더 실행 후 대상장비로 연결 후 커맨드를 전송하는 경우 사용 되는 코드



        

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

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