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;
}







