All Projects → selfuryon → Netdev

selfuryon / Netdev

Licence: apache-2.0
Asynchronous multi-vendor library for interacting with network devices

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Netdev

Diffios
Cisco IOS diff tool
Stars: ✭ 23 (-86.63%)
Mutual labels:  automation, network
Cisco ios
Ansible Network Cisco IOS Provider Role
Stars: ✭ 72 (-58.14%)
Mutual labels:  automation, network
Bash Toolkit
Este proyecto esá destinado a ayudar a los sysadmin
Stars: ✭ 13 (-92.44%)
Mutual labels:  automation, network
Heim
Cross-platform async library for system information fetching 🦀
Stars: ✭ 572 (+232.56%)
Mutual labels:  async, network
Netshot
Network Configuration and Compliance Management
Stars: ✭ 91 (-47.09%)
Mutual labels:  automation, network
Jok3r
Jok3r v3 BETA 2 - Network and Web Pentest Automation Framework
Stars: ✭ 645 (+275%)
Mutual labels:  automation, network
Avenue
Wrapper around URLSession and URLSessionTask to enable seamless integration with Operation / OperationQueue.
Stars: ✭ 58 (-66.28%)
Mutual labels:  async, network
Swoole Src
🚀 Coroutine-based concurrency library for PHP
Stars: ✭ 17,175 (+9885.47%)
Mutual labels:  async, network
Vkbot
Простой разговорный бот на PHP
Stars: ✭ 88 (-48.84%)
Mutual labels:  automation, network
Ansible For Network Engineers
Репозиторий книги "Ansible для сетевых инженеров". Книга в процессе переноса на readthedocs и обновления содержания на Ansible 2.9!
Stars: ✭ 74 (-56.98%)
Mutual labels:  automation, network
Twisted
Event-driven networking engine written in Python.
Stars: ✭ 4,442 (+2482.56%)
Mutual labels:  async, network
Penta
Open source all-in-one CLI tool to semi-automate pentesting.
Stars: ✭ 130 (-24.42%)
Mutual labels:  automation, network
Asks
Async requests-like httplib for python.
Stars: ✭ 429 (+149.42%)
Mutual labels:  async, network
Vssh
Go Library to Execute Commands Over SSH at Scale
Stars: ✭ 707 (+311.05%)
Mutual labels:  automation, network
Exscript
A Python module making Telnet and SSH easy
Stars: ✭ 337 (+95.93%)
Mutual labels:  automation, network
Sshkey Audit
Automate SSH key management
Stars: ✭ 55 (-68.02%)
Mutual labels:  automation, network
Thirtyfour
Selenium WebDriver client for Rust, for automated testing of websites
Stars: ✭ 191 (+11.05%)
Mutual labels:  automation, async
S task
awaitable coroutine library for C
Stars: ✭ 317 (+84.3%)
Mutual labels:  async, network
Pynms
A vendor-agnostic NMS for carrier-grade network simulation and automation
Stars: ✭ 73 (-57.56%)
Mutual labels:  automation, network
Napalm Salt
Modules for event-driven network automation and orchestration using Salt
Stars: ✭ 116 (-32.56%)
Mutual labels:  automation, network

Netdev


Asynchronous multi-vendor library for interacting with network devices

Inspired by netmiko

Requires:

  • asyncio
  • AsyncSSH
  • Python >=3.5
  • pyYAML

Supports:

  • Cisco IOS
  • Cisco IOS XE
  • Cisco IOS XR
  • Cisco ASA
  • Cisco NX-OS
  • Cisco SG3XX
  • HP Comware (like V1910 too)
  • Fujitsu Blade Switches
  • Mikrotik RouterOS
  • Arista EOS
  • Juniper JunOS
  • Aruba AOS 6.X
  • Aruba AOS 8.X
  • Terminal
  • Alcatel AOS

Examples:

Example of interacting with Cisco IOS devices:

.. code-block:: python

import asyncio
import netdev

async def task(param):
    async with netdev.create(**param) as ios:
        # Testing sending simple command
        out = await ios.send_command("show ver")
        print(out)
        # Testing sending configuration set
        commands = ["line console 0", "exit"]
        out = await ios.send_config_set(commands)
        print(out)
        # Testing sending simple command with long output
        out = await ios.send_command("show run")
        print(out)
        # Testing interactive dialog
        out = await ios.send_command("conf", pattern=r'\[terminal\]\?', strip_command=False)
        out += await ios.send_command("term", strip_command=False)
        out += await ios.send_command("exit", strip_command=False, strip_prompt=False)
        print(out)


async def run():
    dev1 = { 'username' : 'user',
             'password' : 'pass',
             'device_type': 'cisco_ios',
             'host': 'ip address',
    }
    dev2 = { 'username' : 'user',
             'password' : 'pass',
             'device_type': 'cisco_ios',
             'host': 'ip address',
    }
    devices = [dev1, dev2]
    tasks = [task(dev) for dev in devices]
    await asyncio.wait(tasks)


loop = asyncio.get_event_loop()
loop.run_until_complete(run())
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].