how can i monitor my server
TRANSCRIPT
-
7/23/2019 How Can I Monitor My Server
1/10
How Can I Monitor My Servers and NetworkedDevices Connection Status?
Overview
What is a Networked Device?How do networks work?
Diagram of OSI Model
Diagram of Simple NetworkWhat protocol is used for device status?
What is ICM?
What is a ing?How can I use ICM to conduct a ing?
What is ing Wi!ard?
Can "ou show me an e#ample of how ing Wi!ard works?$%isual &asic'
$%&Script'$(ctive Server ages'
$%isual C))'$%isual *o#ro'
Where can I find more information a+out ing Wi!ard?
Who is Seekford Solutions, Inc-?
Overview
( lot if time is spent designing and implementing network designs and setting up devices
like computers, servers, .C/I connected e0uipment and more- 1ven with the +est plansand architecture there is alwa"s the uncertaint" of device failure or link failure- When "ou
have distri+uted applications or a critical servers and devices, it +ecomes that much moreimportant to have a method of monitoring the devices to see if the" are online, alive, andreacha+le on the network- .his article will e#plain a rough overview of how networks
work, how devices are connected and how "ou can write software to monitor them
activel"-
What is a Networked Device?
( networked device can +e an"thing from a mainframe server, a printer all the wa" to
custom .C/I implementing devices that monitor pump operations and pressure
integrit" or even displa" and communication devices- With regards to this article, aNetworked Device is an" hardware that is logicall" connected to a network, and uses the
.C/I communication protocol- .his means we+ servers, personal computers and even"our network ena+led coffee machine are considered Networked Devices-
How do networks work?
( network is a set of interconnected devices that can all speak the same language- .here
are man" different t"pes of networks, .oken2ring, I3, (pple.alk, .C/I, and evenproprietar" communications used +" some 4C5s and other hardware- .he scope of this
article will cover .C/I networks, +ut the ph"sical la"out is the same for most t"pes of
http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279925%23_Toc38279925http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279926%23_Toc38279926http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279927%23_Toc38279927http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279928%23_Toc38279928http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279929%23_Toc38279929http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279930%23_Toc38279930http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279931%23_Toc38279931http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279932%23_Toc38279932http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279933%23_Toc38279933http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279934%23_Toc38279934http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279935%23_Toc38279935http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279936%23_Toc38279936http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279937%23_Toc38279937http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279938%23_Toc38279938http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279939%23_Toc38279939http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279940%23_Toc38279940http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279941%23_Toc38279941http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279942%23_Toc38279942http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279925%23_Toc38279925http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279926%23_Toc38279926http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279927%23_Toc38279927http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279928%23_Toc38279928http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279929%23_Toc38279929http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279930%23_Toc38279930http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279931%23_Toc38279931http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279932%23_Toc38279932http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279933%23_Toc38279933http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279934%23_Toc38279934http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279935%23_Toc38279935http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279936%23_Toc38279936http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279937%23_Toc38279937http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279938%23_Toc38279938http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279939%23_Toc38279939http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279940%23_Toc38279940http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279941%23_Toc38279941http://www.seekfordsolutions.com/Articles/MonitorServerConnectivity.aspx#__RefHeading___Toc38279942%23_Toc38279942 -
7/23/2019 How Can I Monitor My Server
2/10
networks- .C/I stands for .ransmission Control protocol/Internet rotocol- .he
standard network is a com+ination of 1thernet and possi+l" wireless connected
communication devices-1ver" device that is connected to the network is considered a node on the network- (
device must have a uni0ue address that identifies it when communicating- .his is where
I addresses come- When the device +oots up, it either assumes a preset I address orre0uest an open address from a DHC server- DHC servers are useful +ecause the"
assign open addresses to new devices- No two devices can have the same I address on
the network otherwise connection pro+lem will occur-Devices speak on the network using network interface hardware that has +uilt2in logic for
the actual ph"sical communication- In an 1thernet network, communication takes place
in a manner that is similar to the wa" a group of friends talk- 1ach device waits until the
line is 0uiet, no one is transmitting, and then +egins to transmit their own message- It ispossi+le for two devices to start talking at the same time- .his is detected +" the
transmitting devices +ecause the" listen to the data as it is sent and if their data is not
what the" think it should +e, the" stop transmitting and wait a random amount of time
+efore checking and transmitting again- .his random time is important +ecause if the"waited the same amount of time, an infinite loop would +e created as each of the devices
kept colliding-
Diagram of OSI Model
Diagram of Simple Network
-
7/23/2019 How Can I Monitor My Server
3/10
What protocol is used for device status?
.he network has +een descri+ed as using .C/I as the +asis for communication- .he
relevant part of that is the I or Internet rotocol- .his has a su+set, which allows forsome standard functionalit" for communicating with devices- One such functional level iscalled ICM or Internet Control Messaging rotocol-
What is ICM?
ICM, or Internet Control Messaging rotocol, supports packets containing error, control,and informational messages- It is a critical part of the Internet rotocol module and is
re0uired to +e implemented in all I stacks- ICM is used for transmitting messages a+out
-
7/23/2019 How Can I Monitor My Server
4/10
the status of packet sends, network pro+lems and more- .he relevant part of the ICM
that is used for checking if a device is online is the 1CHO command- .raditionall" this is
called a ing, since this the name of the utilit" from 6NI3 that utili!ed the command-
What is a in!?
ing is actuall" the name of a utilit" written +" a programmer for the 6ni# operatings"stem +ut now has +ecome s"non"mous with the ICM 1cho command- ( ing works
+" sending a special packet of data to a host machine and then waits for the response- .he
time it takes for this response is called the 7.. or 7eturn .rip .ime- .he longer the time,
the worse the network link is +etween the client and host machines- If there is noresponse, then it can +e assumed that either the network link has +een +roken or the host
is not currentl" online or active-
It is often +elieved that 8ing8 is an a++reviation for acket Internet 9roper, +ut ing:sauthor has stated that the names comes from the sound that a sonar makes- We tend to
like the acket Internet 9roper since it seems a +etter techie term-
How can I use ICM to conduct a in!?.o implement the ICM protocol there are a couple of wa"s of handling it- .he main wa"
is to create a 7(W socket and format a special data packet that is sent using an I packet
to the host- .his can +e complicated since it re0uires a lot of knowledge a+out how
Sockets work and also a+out Network +"te ordering which is different from the Intel +"teordering used in most C5s memor"- .he eas" wa" of handling a ing is to use ing
Wi!ard- It is an (ctive3 control that works in a normal container application or even in
scripted languages like %&Script and (ctive Server ages-
What is in! Wi"ard?
ing Wi!ard is an (ctive3 control created +" Seekford Solutions, Inc- that makes sending
ings ver" simple- Onl" one line of code is needed to actuall" issue the ing- It thenprovides a lot of information from the host such as the 7.. or 7eturn .rip .ime, the
..4, or .ime to 4ive, and response data provided +" the host- Monitoring network
connections +ecomes incredi+l" eas" with this tool and implementation into "ourapplication is trivial-
Can you show #e an e$a#ple of how in! Wi"ard works?
&elow is source code for a variet" of different programming languages that can use ing
Wi!ard- If "ours is not listed, then use the code +elow to provide a guide for "our coding-.he source code shows actual use for the product and possi+le data manipulation, so
some of it ma" +e lengthier than needed for the simplest functionalit"-
[Visual Basic]
Dim+O; (s String
DimsCurrentIN9 (s String
is an Instance of ing Wi!ard %ersion = on the *orm ingWi!ard=>-7esolveNumericI.oHostName .rue
-
7/23/2019 How Can I Monitor My Server
5/10
sCurrentIN9 @>A=->B-->E -ingWithout7(WFsCurrentIN9G
If+O; .hen Msg&o# CStrFingWi!ard=>-(ddressG @ ConnectedE v+C74* J
@(ddress NameK @ ingWi!ardv=>-(ddressName v+C74* J
@7..K @ CStrFingWi!ard=>-7..G1lse
Msg&o# CStrFingWi!ard=>-(ddressG @ *(I41DE v+C74* J
@1rrorK @ ingWi!ard=>-4ast1rrorDescription 1nd If
[VBScript]
< .his is a comprehensive e#ample showing the results like "ou would see from the
IN9-131 programsetM"IN9Wi!ard CreateO+LectF8IN9WI(7D-IN9Wi!ardCtrl=8G
.o
iacketsSent iacketsSent ) > +IsOk M"IN9Wi!ard-ingWithout7(WF8www-SeekfordSolutions-com8G
If+IsOk .hen
iackets7eceived iackets7eceived ) >
sData 87epl" from 8 M"IN9Wi!ard-(ddress 8$8 M"IN9Wi!ard-(ddressName 8'K +"tes8 J
CStrFM"IN9Wi!ard-7epl"Data4engthG 8 time8 CStrFM"IN9Wi!ard-7..G 8ms ..48 CStrFM"IN9Wi!ard-..4G
IfFiacketsSent >G .hen
iMinms M"IN9Wi!ard-7..
1lse iMinms IIfFiMinms M"IN9Wi!ard-7.., M"IN9Wi!ard-7..,
iMinmsG
1nd If iMa#ms IIfFiMa#ms P M"IN9Wi!ard-7.., M"IN9Wi!ard-7..,
iMa#msG d(veragems FIIfFiackets7eceived >, M"IN9Wi!ard-7.., d(veragemsG) M"IN9Wi!ard-7..G / =
1lse
iackets4ost iackets4ost ) > sData 81rrorQ 1rror num+erK 8 CStrFM"IN9Wi!ard-4ast1rrorNum+erG
8 1rror DescriptionK 8 M"IN9Wi!ard-4ast1rrorDescription
1nd If
-
7/23/2019 How Can I Monitor My Server
6/10
sMSg smSg sdata v+crlf
Ne#t
smsg smsg v+Cr4f 8ing statistics for 8 M"IN9Wi!ard-(ddress 8K8 v+Cr4f
smsg smsg 8acketsK Sent 8 cstrFiacketsSentG 8, 7eceived 8
cstrFiackets7eceivedG 8, 4ost 8 iackets4ost 8 F8 cstrFFFCD+lFiackets4ostG R CD+lFiacketsSentGG >GG 8T lossG,8 v+Cr4f
smsg smsg 8(ppro#imate round trip times in milli2secondsK8 v+Cr4f
smsg smsg v+.a+ 8Minimum 8 cstrFiMinmsG 8ms, Ma#imum 8 cstrFiMa#msG 8ms, (verage 8 cstrFCIntFd(veragemsGG 8ms8 v+Cr4f
msg&o#sMsg
functionII*Fa,+,cG
ifa theniif +
else
iif c
end ifend function
[Active Server Pages]
PT
dims(ddress.oing
s(ddress.oing @localhostE
setM"IN9Wi!ard Server-CreateO+LectF8IN9WI(7D-IN9Wi!ardCtrl=8G7esponse-writeF8ing .imeoutK8 ) CStrFM"IN9Wi!ard-.imeoutG ) v+crlfG
7esponse-writeF8ing acket Si!eK8 ) CStrFM"IN9Wi!ard-acketSi!eG ) v+crlfG
7esponse-writeF8IN9 addressK888 ) s(ddress.oing ) 8888G
7esponse-writeF8PH78G +IsOk M"IN9Wi!ard-ingWithout7awFs(ddress.oingG If+IsOk .hen
iackets7eceived iackets7eceived ) >
sData 87epl" from 8 M"IN9Wi!ard-(ddress 8$8 M"IN9Wi!ard-(ddressName 8'K +"tes8 J
CStrFM"IN9Wi!ard-7epl"Data4engthG 8 time8
CStrFM"IN9Wi!ard-7..G 8ms ..48 CStrFM"IN9Wi!ard-..4G
-
7/23/2019 How Can I Monitor My Server
7/10
IfFiacketsSent >G .hen
iMinms M"IN9Wi!ard-7..
1lse iMinms IIfFiMinms M"IN9Wi!ard-7.., M"IN9Wi!ard-7..,
iMinmsG
1nd If iMa#ms IIfFiMa#ms P M"IN9Wi!ard-7.., M"IN9Wi!ard-7..,
iMa#msG
d(veragems FIIfFiackets7eceived >, M"IN9Wi!ard-7.., d(veragemsG) M"IN9Wi!ard-7..G / =
1lse
iackets4ost iackets4ost ) >
sData 81rrorQ 1rror num+erK 8 CStrFM"IN9Wi!ard-4ast1rrorNum+erG 8 1rror DescriptionK 8 M"IN9Wi!ard-4ast1rrorDescription
1nd If
7esponse-writeFsData v+Cr4fG
Ne#t7esponse-writeF v+Cr4f 8ing statistics for 8 M"IN9Wi!ard-(ddress
8K8 v+Cr4fG7esponse-writeF8acketsK Sent 8 cstrFiacketsSentG 8, 7eceived 8
cstrFiackets7eceivedG J
8, 4ost 8 iackets4ost 8 F8 cstrFFFCD+lFiackets4ostG RCD+lFiacketsSentGG >GG 8T lossG,8 v+Cr4fG
7esponse-writeF8(ppro#imate round trip times in milli2secondsK8 v+Cr4fG
7esponse-writeFv+.a+ 8Minimum 8 cstrFiMinmsG 8ms, Ma#imum 8
cstrFiMa#msG 8ms, (verage 8 cstrFCIntFd(veragemsGG 8ms8 v+Cr4fGT
[Visual !!]
Assumptions:
mJingWi!ard is a mem+er varia+le for an Instance of ing Wi!ard v= on a
dialog
mJ7esponse is a mem+er varia+le for a te#t+o# on a dialog-Code:
char +uff$='V
int iacketsSent V
int iackets7eceived Vint iackets4ost V
dou+le d(veragems Vint iMinms Vint iMa#ms V
mJingWi!ard-6nlockingWi!ardF88GV
mJingWi!ard-SetacketSi!eFatolFmJacketSi!eGGVmJingWi!ard-Set.imeOutFatolFmJ.imeOutGGV
mJingWi!ard-Set7esolveNumericI.oHostNameFmJ7esolveNumericGV
-
7/23/2019 How Can I Monitor My Server
8/10
mJ7esponse 8inging 8 ) mJ(ddress.oing ) 8 with 8 ) mJacketSi!e ) 8
+"tes of dataKRrRnRrRn8V
forFint iInde# ViInde# PViInde#))G
iacketsSent))V
if FmJingWi!ard-ingWithout7(WFmJ(ddress.oingGG
mJ7esponse ) 87epl" from 8 ) mJingWi!ard-9et(ddressFG )
8$8 ) mJingWi!ard-9et(ddressNameFG ) 8'K +"tes8VJitoaFmJingWi!ard-9et7epl"Data4engthFG,+uff,>GV
mJ7esponse ) CStringF+uffG ) 8 time8V
JitoaFmJingWi!ard-9et7ttFG,+uff,>GV
mJ7esponse ) CStringF+uffG ) 8ms ..48VJitoaFmJingWi!ard-9et.tlFG,+uff,>GV
mJ7esponse ) CStringF+uffG ) 8RrRn8V
iackets7eceived))V
if Fiackets7eceived >G
iMinms mJingWi!ard-9et7ttFGVXelse
iMinms FiMinms mJingWi!ard-9et7ttFGG ?mJingWi!ard-9et7ttFG K iMinmsV
X
iMa#ms FiMa#ms mJingWi!ard-9et7ttFGG ? iMa#ms K
mJingWi!ard-9et7ttFGVd(veragems ) mJingWi!ard-9et7ttFGV
Xelse
JitoaFmJingWi!ard-9et4ast1rrorNum+erFG,+uff,>GV
mJ7esponse ) mJingWi!ard-9et4ast1rrorDescriptionFG ) 8RrRn8
Viackets4ost))V
X
X
d(veragems / iackets7eceivedVmJ7esponse ) 8ing statistics for 8 ) mJingWi!ard-9et(ddressFG ) 8 KRrRn8V
JitoaFiacketsSent,+uff,>GV
mJ7esponse ) 8acketsK Sent 8 ) CStringF+uffG ) 8, 7eceived 8VJitoaFiackets7eceived,+uff,>GV
mJ7esponse ) CStringF+uffG ) 8, 4ost 8V
JitoaFiackets4ost,+uff,>GVmJ7esponse ) CStringF+uffG )8 F8V
JitoaFFFdou+leGiackets4ost / Fdou+leGiacketsSentG >,+uff,>GV
mJ7esponse ) CStringF+uffG ) 8T lossG,RrRn8V
mJ7esponse ) 8(ppro#imate round trip times in milli2secondsKRrRn8V
-
7/23/2019 How Can I Monitor My Server
9/10
JitoaFiMinms,+uff,>GV
mJ7esponse ) 8RtMinimum 8 ) CStringF+uffG ) 8ms, Ma#imum 8V
JitoaFiMa#ms,+uff,>GVmJ7esponse ) CStringF+uffG ) 8ms, (verage 8V
JitoaFFintGd(veragems,+uff,>GV
mJ7esponse ) CStringF+uffG ) 8msRrRn8V(f#Message&o#FmJ7esponseGV
[Visual "o#Pro]
Assumptions:
.hat a dialog has the ingWi!ardv= o+Lect on it name M"IN9Wi!ard or that thecreateo+Lect command is used-Code:
set M"IN9Wi!ard CreateO+LectF8IN9WI(7D-IN9Wi!ardCtrl=8G 6ncomment the a+ove line of code and remove the .HIS*O7M ids if "ou
want to create the o+Lect at runtime
.HIS*O7M-M"IN9Wi!ard-6nlockingWi!ardF88G
.HIS*O7M-M"IN9Wi!ard-7esolveNumericI.oHostName -t-
localsData,+IsOk,iInde#,iacketsSent ,iackets7eceived ,iackets4ost
,d(veragemssData 88
+IsOk -f-
iInde#
iacketsSent iackets7eceived
iackets4ost
d(veragems
iMinms iMa#ms
sMsg 88dacket4oss
*oriInde# > .o
iacketsSent iacketsSent ) >
+IsOk .HIS*O7M-M"IN9Wi!ard-ingWithout7awF8www-SeekfordSolutions-com8G
If+IsOk .hen
iackets7eceived iackets7eceived ) > sData 87epl" from 8 ) .HIS*O7M-M"IN9Wi!ard-(ddress ) 8$8 )
.HIS*O7M-M"IN9Wi!ard-(ddressName ) 8'K +"tes8 )S.7F.HIS*O7M-M"IN9Wi!ard-7epl"Data4engthG ) 8 time8 )S.7F.HIS*O7M-M"IN9Wi!ard-7..G ) 8ms ..48 )
S.7F.HIS*O7M-M"IN9Wi!ard-..4G
IfFiacketsSent >G .hen iMinms .HIS*O7M-M"IN9Wi!ard-7..
1lse
-
7/23/2019 How Can I Monitor My Server
10/10
iMinms IIfFiMinms .HIS*O7M-M"IN9Wi!ard-7..,
.HIS*O7M-M"IN9Wi!ard-7.., iMinmsG
1ndIf iMa#ms IIfFiMa#ms P .HIS*O7M-M"IN9Wi!ard-7..,
.HIS*O7M-M"IN9Wi!ard-7.., iMa#msG
d(veragems FIIfFiackets7eceived >, .HIS*O7M-M"IN9Wi!ard-7..,d(veragemsG ) .HIS*O7M-M"IN9Wi!ard-7..G / =
1lse
iackets4ost iackets4ost ) > sData 81rrorQ 1rror num+erK 8 )
S.7F.HIS*O7M-M"IN9Wi!ard-4ast1rrorNum+erG ) 8 1rror DescriptionK 8 )
.HIS*O7M-M"IN9Wi!ard-4ast1rrorDescription
1ndIfsMSg smSg ) sdata ) ) chrF>YG
Ne#t
ifFipacketslost G then
dacketloss FFiackets4ostG / FiacketsSentGG >endif
smsg smsg ) chrF>YG ) 8ing statistics for 8 ).HIS*O7M-M"IN9Wi!ard-(ddress ) 8K8 ) chrF>YG
smsg smsg ) 8acketsK Sent 8 ) S.7FiacketsSentG ) 8, 7eceived 8 )
S.7Fiackets7eceivedG ) 8, 4ost 8 ) S.7Fiackets4ostG ) 8F8 ) S.7Fdacket4ossG )8T lossG,8 ) chrF>YG
smsg smsg ) 8(ppro#imate round trip times in milli2secondsK8 )
S.7Fd(veragemsG ) chrF>YG
smsg smsg ) 8 8 ) 8Minimum 8 ) S.7FiMinmsG ) 8ms, Ma#imum 8 )S.7FiMa#msG ) 8ms, (verage 8 ) FS.7Fd(veragemsGG ) 8ms8 ) ) chrF>YG
message&o#F sMsgG
Where can I find #ore infor#ation a%out in! Wi"ard?
More information can +e found at the product5s we+ linkK
httpK//www-seekfordsolutions-com/roducts/ingWi!ard/
Who is Seekford Solutions& Inc'?
Seekford Solutions, Inc- is a software development corporation speciali!ing in the design
and development of state of the art (ctive3 controls and custom proLects- .heir coreproduct line is focused on Internet technologies primaril" in the facilitation of the use of
the common Internet protocols- .he design philosoph" is +ased on ease of use and 0uickimplementation time- .he" also handle custom proLects for clients who are need of
specialt" software or who need a framework +ase to use- .he compan" was founded inearl" =>-
.heir we+site is httpK//www-seekfordsolutions-com/
http://www.seekfordsolutions.com/Products/PingWizard/http://www.seekfordsolutions.com/http://www.seekfordsolutions.com/Products/PingWizard/http://www.seekfordsolutions.com/