Vstupné parametre:
IP adresa/adresy - oddeľovacie znaky ";" pre jednotlivé adresy a "-" pre rozsah adries.
Timeout - nastavenie času odozvy, ako dlho sa má čakať na odpoveď.
Loop delay - oneskorenie medzi jednotlivými "pingami".
Repeat - opakovanie, nastavenie počtu "pingov" za sebou. Ak tento parameter nie je vyplnený, znamená to nekonečnú slučku, ktorá sa dá prerušiť tlačidlom "CANCEL".
Výstup: ak je parameter REPEAT = 1, výsledok je vypísaný v klasickom windows okne. Ak je nastavené opakovanie, údaje sa ukladajú do TXT súboru.
/************************************************************************** * IP ping. * * Inputs: ipList - array list of IP addresses * Outputs: outputIP - output string with OK and NG IP addresses **************************************************************************/ private bool PingIP(ArrayList ipList, out string outputIP) { long pingTimeMS = -1; outputIP = String.Empty; errorMessage = String.Empty; try { Ping ipAddressPing = new Ping(); //vytvorenie objektu foreach (string ipAddress in ipList) //pre vsetky zadane IP adresy { Application.DoEvents(); //povolenie ostatnych aplikacii if (cancel == true) break; //kontrola, ci operacia nebola zrusena uzivatelom - tlacidlo CANCEL PingReply pingReply = ipAddressPing.Send(ipAddress, Convert.ToInt32(this.textBoxTimeOut.Text)); //pingovanie - ip adresa, timeout if (pingReply.Status != IPStatus.Success) //kontrola statusu pre danu ip adresu { errorMessage += "\r\n" + ipAddress; } else { pingTimeMS = pingReply.RoundtripTime; //cas odozvy outputIP += ipAddress + " - Time(ms): " + pingTimeMS.ToString() + "\r\n"; } Thread.Sleep(Convert.ToInt32(this.textBoxDelay.Text)); //oneskorenie medzi jednotlivymi pingami } if (errorMessage != String.Empty) //kontrola, ci pingovanie pri niektorej IP adrese zlyhalo { return false; } } catch (Exception e) { exceptionError = true; //priznak ak nastala nejaka vynimka errorMessage = e.Message; return false; } return true; }