Mostrar conexões de rede ativas
Publicado por José Lucas (última atualização em 17/03/2021)
[ Hits: 2.073 ]
Homepage: https://github.com/NIDObr
Olá, comecei a me aventurar na TCL/TK, estou gostando bastante, é uma linguagem poderosa e cheia de recursos. Este script é só um teste, ainda estou aprendendo esta linguagem.
Mostra conexões de rede ativas, local e remota com base no arquivo "/proc/net/tcp".
#!/usr/bin/tclsh # Autor: MINEMAM # 06/12/2020 # Sobre: Mostra as conexões de rede, usando como base o arquivo "/proc/net/tcp" #------------Funçoes---------------- # Converte hexadecimal(little-edian) para decimal proc hex_to_dec { hex } { set cont 0 set hex_lista {} # Reordena o valor hexadecimal(little-edian) para convertelo while { $cont != [ string length $hex ] } { set hex_conv [ string index $hex $cont ] set par [ regexp {([02468])} $cont par_m ] if { $par == 1} { set indice [ expr $cont + 1 ] set hex_lista [ linsert $hex_lista $indice $hex_conv ] } else { set indice [ expr $cont - 1 ] set hex_lista [ linsert $hex_lista $indice $hex_conv ] } incr cont } # Inverte a ordem da lista set cont 7 set indice 0 set dec_lista {} while { $cont != -1 } { set var_atu [ lindex $hex_lista $cont ] set dec_lista [ linsert $dec_lista $indice $var_atu ] incr cont -1 incr indice } # Converte hexadecimal para decimal usando o "expr 0x" if { [ string length $hex ] == 8 } { set dec1 [ expr 0x[ lindex $dec_lista 0 ][ lindex $dec_lista 1 ] ] set dec2 [ expr 0x[ lindex $dec_lista 2 ][ lindex $dec_lista 3 ] ] set dec3 [ expr 0x[ lindex $dec_lista 4 ][ lindex $dec_lista 5 ] ] set dec4 [ expr 0x[ lindex $dec_lista 6 ][ lindex $dec_lista 7 ] ] set resultado "$dec1.$dec2.$dec3.$dec4" } else { set dec3 [ expr 0x[ lindex $dec_lista 4 ][ lindex $dec_lista 5 ] ] set resultado "$dec3" } return $resultado } #------------Inicio----------------- # Verifica se o arquivo existe if { [ file exists /proc/net/tcp ] } { set tcp_file [ open /proc/net/tcp r ] } else { puts "Arquivo não existe!" exit } set cont 0 while { ! [ eof $tcp_file ] } { if { $cont == 0 } { set tcp_linha [ gets $tcp_file ] puts "Conexão Local: Conexão Remota:" } else { set tcp_linha [ gets $tcp_file ] if { $tcp_linha == "" } { break } # IP:PORTA DE ORIGEM set hex_orig [ lindex $tcp_linha 1 ] set hex_ip_o [ string range $hex_orig 0 7 ] set hex_port_o [ string range $hex_orig 9 12 ] set ip_local [ hex_to_dec $hex_ip_o ] set porta_local [ hex_to_dec $hex_port_o ] # IP:PORTA DE DESTINO set hex_dest [ lindex $tcp_linha 2 ] set hex_ip_d [ string range $hex_dest 0 7 ] set hex_port_d [ string range $hex_dest 9 12 ] set ip_dest [ hex_to_dec $hex_ip_d ] set porta_dest [ hex_to_dec $hex_port_d ] puts "$ip_local:$porta_local $ip_dest:$porta_dest" } incr cont } close $tcp_file
Servidor web pequeno e simples em TCL
Vou voltar moderar conteúdos de Dicas e Artigos (0)
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Instalação Uefi com o instalador clássico do Mageia (1)
Vou voltar moderar conteúdos de Dicas e Artigos (0)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta