https://foro.gambas-es.org/viewtopic.php?f=1&t=940
-----------------------------------
mlavarini
Jueves, 09 Septiembre 2010, 18:00

Hacer Un Ping (Solucionado)
-----------------------------------
Hola, es la primera vez que participo del foro. 

Mis conocimiento en Gambas son muy limitados, ya que hace poco decidi empezar a utilizarlo, 
necesito conocer un fragmento que me permita ingresar una direccion ip en un TEXT y al presionar un boton me devuelva un mensaje informando si el ping fue exitoso o no. La verdad es que no se como hacerlo, pero seria bueno encontrar la forma de que funcione.

Muchas Gracias!


-----------------------------------
jsbsan
Jueves, 09 Septiembre 2010, 20:27

Re: Hacer Un Ping
-----------------------------------
He encontrado por internet este script en bash:

[code linenumbers=false syntax=bash]#!/bin/bash

# Programa que pide una direccion IP al usuario y reliza un 3 pings con interva$
read -p "Ingrese una direccion IP: " ip

if $(ping -c3 -i 2 $ip > /dev/null);then
echo "La maquina $ip esta arriba (up)"
else
echo "La maquina $ip esta abajo (down)" 
fi[/code]

Pero no se como llevarlo a gambas2, seguramente con la orden Exec o Shell se debe de conseguir...


-----------------------------------
jsbsan
Viernes, 10 Septiembre 2010, 10:14

Re: Hacer Un Ping
-----------------------------------
Ya tengo el codigo en gambas...

Tienes que crear un listbox1,TextLabel1,un textobox llamalo TextBoxIP, y un boton llamado ButtonComprobar
 [img]http://foro.gambas-es.org/files/images/6/pantallazo_1284109726_527815.png[/img] 

[code linenumbers=false syntax=gambas]

PUBLIC SUB ButtonComprobar_Click()

  DIM hproc AS Process
  DIM buf AS String
  DIM sCads AS NEW String[]
  DIM a AS Integer
  DIM NombreArchivoSalida AS String
  DIM mensaje AS String
  
ListBox1.Clear

NombreArchivoSalida = User.home & "/print.txt"

IF Exist(NombreArchivoSalida) THEN 
KILL NombreArchivoSalida
END IF

'PRINT "ping -c3 -i 2 "; TextBoxIP.Text & " >"; NombreArchivoSalida


hproc = SHELL ("ping -c3 -i 2 " & TextBoxIP.Text & " >" & NombreArchivoSalida)

DO WHILE hproc.State = Process.Running
WAIT 0.1
TextLabel1.text = "espere..."
LOOP

TextLabel1.text = "Salida generada"

sCads = Split(File.Load(NombreArchivoSalida), "\n")

FOR a = 0 TO scads.Count - 1
  ListBox1.Add(Str(sCads[a]))
  IF InStr(scads[a], "0% packet loss") <> 0 THEN 
  mensaje = "No hay paquetes perdidos"
  ENDIF 
 
' PRINT scads[a]
  
NEXT

IF mensaje = "No hay paquetes perdidos" THEN 
Message.Info("No hay paquetes perdidos")
ELSE 
Message.Info("Ha habido algun problema")
ENDIF 

END
[/code]


Lo que hace es la salida del ping de la consola te lo muestra en la pantalla.

Y hace una pequeña comprobacion, si alguna linea contine  "0% packet loss", saca un mensaje diciendo que "No  hay paquetes perdidos", en cualquier otro caso dice "Ha habido algun problema" (o bien no existe la IP, no tienes conexion a internet..)

 [img]http://foro.gambas-es.org/files/images/6/pantallazo_1_1284110005_431072.png[/img]


Aqui esta el codigo fuente [url=http://www.proyectojulio.webcindario.com/ping-0.0.1.tar.gz]Enlace


-----------------------------------
mlavarini
Viernes, 10 Septiembre 2010, 15:12

Re: Hacer Un Ping
-----------------------------------
Excelente! Funciono de maravilla! muchas gracias por los aportes!


-----------------------------------
jsbsan
Sabado, 11 Septiembre 2010, 10:13

Re: Hacer Un Ping
-----------------------------------
Ok, he puesto una entrada en mi blog explicando el funcionamiento del programa.

[url=http://jsbsan.wordpress.com/2010/09/11/haciendo-ping-en-gambas/]http://jsbsan.wordpress.com/2010/09/11/haciendo-ping-en-gambas/



Nota:
Si esta resuelto el problema, edita el titulo de tu primera pregunta y añade [SOLUCIONADO]


