Ping Simples
# importa a lib scapy
import scapy.all as scapy
# coloque aqui o endereco IP que deseja pingar
ip_ping = "XXX.XXX.XXX.XXX"
# executa a funcao sr1
scapy.sr1(scapy.IP(dst=ip_ping)/scapy.ICMP(), timeout=3)
Ping verificando a resposta
# importa a lib scapy
import scapy.all as scapy
# coloque aqui o endereco IP que deseja pingar
ip_ping = "XXX.XXX.XXX.XXX"
# executa a funcao sr1 e colocando a resposta na variavel resposta
resposta = scapy.sr1(scapy.IP(dst=ip_ping)/scapy.ICMP(), timeout=3)
# verifica se existe resposta
if resposta is not None:
print('resposta')
print(resposta.src)
print(resposta.dst)
else:
print('nao teve resposta')
Alerta Telegram
# importa a lib requests
import requests
# coloque aqui o token do seu bot do telegram
TOKEN = "XXXXXXXXXXX"
# coloque aqui o id do chat do seu bot do telegram
chat_id = "XXXXXXXXXX"
# mensagem a ser enviada para o telegram
message = "Teste de alerta"
# url da api de envio de mensagem do telegram
url =
f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={chat_id}&te
xt={message}"
# acessa a url e envia a mensagem
requests.get(url)
Ping com Alerta no Telegram
# importa a lib scapy
import scapy.all as scapy
# importa a lib requests
import requests
# coloque aqui o endereco IP que deseja pingar
ip_ping = "XXX.XXX.XXX.XXX"
# executa a funcao sr1 e colocando a resposta na variavel resposta
resposta = scapy.sr1(scapy.IP(dst=ip_ping)/scapy.ICMP(), timeout=3)
# verifica se existe resposta
if resposta is not None:
print('resposta')
print(resposta.src)
print(resposta.dst)
else:
print('nao teve resposta')
# coloque aqui o token do seu bot do telegram
TOKEN = "XXXXXXXXXXX"
# coloque aqui o id do chat do seu bot do telegram
chat_id = "XXXXXXXXXX"
# mensagem a ser enviada para o telegram
message = "nao teve resposta"
# url da api de envio de mensagem do telegram
url =
f"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={chat_id}&te
xt={message}"
# acessa a url e envia a mensagem
requests.get(url)
Backup Cisco
# Script de backup de um roteador cisco
# importa as libs netmiko e getpass
import netmiko, getpass
# pergunta IP usuario e senha de acesso do roteador
ip = input('Device IP: ')
un = input('Username: ')
pw = getpass.getpass()
sc = getpass.getpass(prompt='Secret: ')
# cria variavel cisco_ios com as informacoes de acesso
cisco_ios = {
'device_type': 'cisco_ios',
'ip': ip,
'username': un,
'password': pw,
'secret': sc,
}
# conecta ao roteador usando o ConnectHandler do netmiko
net_connect = netmiko.ConnectHandler(**cisco_ios)
# espera o prompt de comando ficar disponivel
prompt = net_connect.find_prompt()
# cria o arquivo backup.txt para salvar as configs
filename = "backup.txt"
# executa o comando enable no terminal do roteador
net_connect.enable()
# executa o comando show run no roteador
showrun = net_connect.send_command('show run')
# executa o comando show ver no roteador
showver = net_connect.send_command('show ver')
# abre o arquivo backup.txt e armazena o backup
log_file = open(filename, "a")
log_file.write(showrun)
log_file.write("\n")
log_file.write(showver)
log_file.write("\n")
# sai do enable do roteador
net_connect.exit_enable_mode()
# desconecta do roteador
net_connect.disconnect()
Traceroute Simples
# importa a lib scapy
import scapy.all as scapy
# coloque aqui o endereco IP que deseja fazer o trace
ip_traceroute = "XXX.XXX.XXX.XXX"
# executa a funcao traceroute
scapy.traceroute(ip_traceroute)
Nmap Simples
# importa a lib scapy
import scapy.all as scapy
# coloque aqui o endereco IP que deseja fazer o nmap
ip_nmap = "XXX.XXX.XXX.XXX"
# executa a funcao nmap para portas 1 a 1024
res, unans = sr(IP(dst=ip_nmap)/TCP(flags="S", dport=(1,1024)))
# mostra as portas abertas
res.nsummary(lfilter=lambda s,r: (r.haslayer(TCP) and
(r.getlayer(TCP).flags & 2)))
Referências
● Documentação Scapy: https://scapy.readthedocs.io/en/latest/
● Exemplo de ping: https://code-maven.com/slides/python/scapy-ping-pong
● Exemplo de backup Cisco:
https://github.com/AlexMunoz905/Cisco-Backup-Config/blob/master/Router.py
● Python Package Installer: https://pypi.org/project/pip/
● Netmiko: https://github.com/ktbyers/netmiko