• Viernes 1 de Noviembre de 2024, 07:39

Autor Tema:  Problema Windows 7 y Ping.Send()  (Leído 3020 veces)

Sined99

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Problema Windows 7 y Ping.Send()
« en: Martes 19 de Febrero de 2013, 11:00 »
0
Hola,
Tengo este codigo(obtenido de la pagina oficial de MSDN) para realizar un Ping a un equipo:

Código: [Seleccionar]
public static void Main (string[] args)
        {
            Ping pingSender = new Ping ();
            PingOptions options = new PingOptions ();

            // Use the default Ttl value which is 128,
            // but change the fragmentation behavior.
            options.DontFragment = true;

            // Create a buffer of 32 bytes of data to be transmitted.
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes (data);
            int timeout = 120;
            PingReply reply = pingSender.Send (args[0], timeout, buffer, options);
            if (reply.Status == IPStatus.Success)
            {
                Console.WriteLine ("Address: {0}", reply.Address.ToString ());
                Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
                Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
                Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
                Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
            }
        }


Si ejecuto este codigo con Windows XP no hay problema de ningún tipo, es decir, si detecta un equipo, el "reply" lo detecta y si no detecta ningun equipo te devuelve uno de sus estados(hardware no encontrado...etc), el problema es con Windows 7, al realizar el ping, si existe un equipo el "reply" devuelve un estado "succes", en cambio, si no detecta ningún equipo me lanza una Ping exception y me detiene la ejecución.

 ¿Alguien sabe como solucionarlo?, lo que quiero es que al realizar un ping aunque no detecte un equipo me devuelva un status(el que sea) pero que no me lance una excepcion.

Un resumen:
                    |    Equipo IP conectado |    Equipo IP NO conectado
Windows XP  |    Succes                     |    (DestinationNetworkUnreachable,  DestinationHostUnreachable...etc)

Windows 7    |    Succes                     |    Exception
 

Lo que me gustaría es que en Windows 7 al no detectar un equipo IP me devolviera un estado (DestinationNetworkUnreachable,  DestinationHostUnreachable...etc) y no una exception.

Muchas gracias y un saludo.

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:Problema Windows 7 y Ping.Send()
« Respuesta #1 en: Martes 19 de Febrero de 2013, 16:31 »
0
Buen día Sined99, pues ya emule tú código y me funciona correctamente es decir no me manda la excepción y probé con una IP que existe y que no, sin embargo creo que tú error está cuando quieres probar con una IP que sale de los rangos (255.255.255.0), recuerda que no existen IPs con 275.354.254.854 por eso te debe mandar la excepción, podrías validar que la IP que envíen sea correcta.

Saludos!
@gabio87

Sined99

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re:Problema Windows 7 y Ping.Send()
« Respuesta #2 en: Miércoles 20 de Febrero de 2013, 08:22 »
0
Hola,
Muchas gracias por responder, estoy probando con la IP "192.168.1.1" ( es la IP de un PLC "programmable logic controller") y con Windows 7 me salta la excepcion(PingException) en cambio con Windows XP no, ese es mi problema, no se si sera cosa de las reglas de entrada de Windows Firewall (he probado a quitarlo y sigue sin funcionar) o cuál será el problema.

¿Alguna idea más?

Muchas gracias y un saludo.

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:Problema Windows 7 y Ping.Send()
« Respuesta #3 en: Miércoles 20 de Febrero de 2013, 16:07 »
0
Podrías pasar exactamente el error de la Excepción, para investigar de que podría tratarse.
@gabio87

Sined99

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re:Problema Windows 7 y Ping.Send()
« Respuesta #4 en: Jueves 21 de Febrero de 2013, 08:21 »
0
Hola,
Os adjunto la excepcion, como ya he dicho se trata de una PingException, y solo me ocurre en las condiciones descritas en mi primer post.

Muchas gracias y un saludo.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:Problema Windows 7 y Ping.Send()
« Respuesta #5 en: Jueves 21 de Febrero de 2013, 15:46 »
0
Puff!..estuve indagando en internet pero todavía no encuentro nada que pueda utilizar, sin embargo, podrías controlarlo con un try catch, capturas el error y listo tú muestras en pantalla que el ping tuvo error o simplemente que no lo encontró.  Saludos.
@gabio87