ActiveX: SLPing (Filnamn: SLPING.OCX)
![]()
| SLPing är en ActiveX-komponent som kan användas för att testa om en dator vid ett specificerat IP-nummer eller domännamn existerar. Kontrollen mäter också tiden det tar att skicka ut en förfrågan och ett erhålla ett svar. Tiden erhålls i millisekunder. SLPing använder protokollet ICMP (Internet Control Message Protocol) när den utför en ping-operation. Storleken på datapaketet som skickas under ping-operationen är 32 bytes. |
Egenskaper
| Namn | Datatyp | Beskrivning |
| HostNotFound | BOOL | Sätts till TRUE om ett
IP-nummer eller domännamn inte kan hittas. Denna egenskap kan endast
läsas. . |
| ResponseTime | long | Efter att metoden Ping
anropats innehåller denna egenskap svarstiden i millisekunder. Denna
egenskap kan endast läsas. . |
| Timeout | long | Specificerar tiden i sekunder
som kontrollen ska vänta på ett svar innan den avbryter. . |
| TimeoutOccurred | BOOL | Sätts till TRUE om
timeout inträffade vid senaste anrop av metoden Ping.
Denna egenskap kan endast läsas. . |
Metoder
BOOL Ping(LPCTSTR Address); Utför en ping-test på ett IP-nummer eller domännamn som specificeras av parametern Address. Existerar adressen och inga fel inträffat returnerar funktionen TRUE. Tiden i millisekunder för ett svar kan läsas från egenskapen ResponseTime. Om adressen inte kan hittas, det hinner bli timeout eller ett fel inträffar returnerar funktionen FALSE och metoden GetLastError kan användas för att erhålla en felkod. Om inte addressen existerar sätts även egenskapen HostNotFound till TRUE. Och egenskapen TimeoutOccurred sätts till TRUE om timeout inträffade (dvs inget svar erhölls inom den tidsram som specificerats av egenskapen Timeout).
long GetLastError(); |
Exempel
char szAddress[256];
char S[256];
long ResponseTime;
GetDlgItemText(IDC_ADDRESS, szAddress, 100);
// Erhåll domännamn eller IP-adress som ska testas
if (m_Ping.Ping(szAddress)) {
ResponseTime=m_Ping.GetResponseTime();
// Erhåll svarstid från kontrollen
wsprintf(S,"Svarstid: %d ms",ResponseTime);
SetDlgItemText(IDC_INFO,S);
// Skriv ut svarstid
}
else {
if (m_Ping.GetHostNotFound()) {
SetDlgItemText(IDC_INFO,"Hittade ej domännamn eller
IP-adress!");
}
else if (m_Ping.GetTimeout()) {
SetDlgItemText(IDC_INFO,"Timeout!");
}
else {
long
err_number=m_Ping.GetLastError();
wsprintf(S,"Fel #%d
inträffade!",err_number);
SetDlgItemText(IDC_INFO,S);
}
}
![]()