Ir ao conteúdo
  • Cadastre-se

Python Ping scan em python


Posts recomendados

Boa tarde pessoal, estou criando um simples interface gráfica! presciso de uma ajudar para criar um função que me retorna um ping dizendo que um host da rede interna está online ou offline!

 

import  requests
from    tkinter import  *
import  os
from    awesometkinter  import  *


def sim():  # função de liberação do computador
    texto   =   'Você está liberado para utlizador o computador!'
    botao3["text"]   =   (texto)
    print('no')
    janela.after(3000,  sair)

def sair(): # função de fechar a janela
    janela.destroy()
    

def sair1(): # função de fechar a janela e delisgar o computador
    os.system("shutdown /s /t 60") 
    janela.destroy()

def não():  # função de desligamento do computador
    texto   =   'Este computador será desligado em até 1m.'
    botao3["text"]   =   (texto)
    janela.after(6000,  sair1) 


def pingtest():
    ping    =   os.system('ping -n 2 192.168.237.127')
    if  ping    ==  0:
        texto   =   'O servidor está conectado!'
        botao3['text']    =   (texto)
        janela.after(3000)
    else:
        texto   =   'O servidor está desconectado!'
        botao3['text']  =   (texto)


janela  =   Tk()    # config da janela
janela.title('Aviso!')  # config da janela

# texto principal
texto_orientacao    =   Label(janela, font='bold' ,text='Para iniciar este computador e necessário que o servidor esteja conectado!, para o funcionamento correto dos sistemas da empresa!')
texto_orientacao.grid(column=0, row=0)

# texto secundário
texto_orientacao2    =   Label(janela, font='bold'  ,text='O servidor está conectado?')
texto_orientacao2.grid(column=0, row=3)

# botão de sim
botao   =   Button3d(janela,  text='Está conectado!',    command=sim,  bg='#68B984')
botao.grid(column=0,    row=5,  columnspan=1,   sticky=E) # sticky='w'

# botão de não
botao2  =   Button3d(janela,  text='Não esta conectado!',    command=não,  bg='#DC3535')
botao2.grid(column=0,    row=5, sticky=W) # sticky='e'

# botão de ping
botao2  =   Button3d(janela,  text='Clique para ver se o servidor está conectado!', command=pingtest, bg='#FFE15D')
botao2.grid(column=0,    row=4, pady=10) # sticky='e'

# texto de reposta aos botões (sim, não)
texto_opt   =   Label(janela,   text='')
texto_opt.grid(column=0,    row=2)

# texto de resposta botão (ping)
botao3   =   Label(janela,   font='Bold', text='')
botao3.grid(column=0,    row=5,   padx=120,    columnspan=1)

janela.mainloop()

 

A questão em si está na função 'pingtest', quando eu mando um ping e o host me retorna = dizendo que está online, ele me envia o parametro '0', pórem quando ele está offline ele também me retorna as vezes o parametro '0', tem alguma forma ou parametro que eu posso utilizar?

 

 

Screenshot_4.png

WhatsApp Image 2022-12-01 at 20.43.10.jpeg

WhatsApp Image 2022-12-01 at 20.46.14.jpeg

Pasta1.xlsx

  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • 9 meses depois...
from subprocess import check_output

def pingtest() -> str:
"""função que testa a conexão com o check_output e em caso de falha reporta como offline"""
    try:
        check_output("ping -n 2 x.x.x.x", shell=True, text=True)
        return "Online"
    except Exception as e:
        return "Offline"
      

print(pingtest())

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!