ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

PING   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pointe Cla H9R 3K8
de la société Carver Technologies Inc.
Fiche personnelle


Note des membres
pas de note

Contributions > 09 - Automation > WMI (Windows Management Instrumentation)

PING
# 0000000312
ajouté le 27/04/2006 20:05:39 et modifié le 27/04/2006
consulté 8260 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0

Description

 

Ce code a besoin de WMI et doit etre roulé à partir d'une station XP ou Windows 2003

Code source :
local oWMI, cAddress, oPings, oPing, oItem
CLEAR
oWMI = getobject("winmgmts:")
 cAddress = "www.mcrgsoftware.com" && Ou adresse IP

if os() < "Windows 5.01" or os() = "Windows NT 4.00"
  messagebox("Ceci fonctionne seulement sur Windows XP/Server 2003")
  return
endif

oPings = oWMI.ExecQuery([Select * from WIN32_Pingstatus where address='] + cAddress + ['])

for each oPing in oPings
  * Cette classe ne supporte pas le For/Each puisqu'il y a seulement une réponse à recevoir
  ? "Code de Statut: ", GetStatusCode(oPing.statuscode)
  ?
  ? "Adresse: ", oPing.Address
  ? "Buffer size", oPing.BufferSize
  ? "No Fragmentation", oPing.NoFragmentation
  ? "PrimaryAddressResolutionStatus", oPing.PrimaryAddressResolutionStatus
  ? "ProtocolAddress", oPing.ProtocolAddress
  ? "ProtocolAddressResolved", oPing.ProtocolAddressResolved
  ? "RecordRoute", oPing.RecordRoute
  ? "ReplyInconsistency", oPing.ReplyInconsistency
  ? "ReplySize", oPing.ReplySize
  ? "ResolveAddressNames", oPing.ResolveAddressNames
  ? "ResponseTime", oPing.ResponseTime
  ? "ResponseTimeToLive", oPing.ResponseTimeToLive
  ? "SourceRoute", oPing.SourceRoute
  ? "SourceRouteType", GetSourceRouteType(oPing.SourceRouteType)
  ? "Timeout", oPing.timeout
  ? "TimestampRoute", oPing.TimestampRoute
  ? "TimeToLive", oPing.TimeToLive
  ? "TypeofService", GetTypeOfService(oPing.TypeofService)

  if not isnull(oPing.RouteRecord)
    for each oItem in oPing.RouteRecord
      ? oItem
    next
  endif

  if not isnull(oPing.RouteRecordResolved)
    for each oItem in oPing.RouteRecordResolved
      ? oItem
    next
  endif

  if not isnull(oPing.RouteRecordResolved)
    for each oItem in oPing.TimeStampRecord
      ? oItem
    next
  endif

  if not isnull(oPing.TimeStampRecordAddress)
    for each oItem in oPing.TimeStampRecordAddress
      ? oItem
    next
  endif

  if not isnull(oPing.TimeStampRecordAddressResolved)
    for each oItem in oPing.TimeStampRecordAddressResolved
      ? oItem
    next
  endif

next

procedure GetSourceRouteType
  lparameters nSourceRouteType

  local cType

  do case
    case nSourceRouteType = 1
      cType = "Loose Source Routing"
    case nSourceRouteType = 2
      cType = "Strict Source Routing"
    otherwise
      * Defaut - 0 - ou autre valeur.
      cType = "Aucun"
  endcase

  return cType

endproc

procedure GetTypeOfService
  lparameters nServiceType

  local cType as string

  do case
    case nServiceType = 2
      cType = "Minimize Monetary Cost"
    case nServiceType = 4
      cType = "Maximize Reliability"
    case nServiceType = 8
      cType = "Maximize Throughput"
    case nServiceType = 16
      cType = "Minimize Delay"

    otherwise
      * Default - 0 - or any other value.
      cType = "Normal"

  endcase

  return cType

endproc

procedure GetStatusCode (cCode as stringas string

  local cStatus

  do case
    case cCode = 0
      cStatus = "Success"
    case cCode = 11001
      cStatus = "Buffer Too Small"
    case cCode = 11002
      cStatus = "Destination Net Unreachable"
    case cCode = 11003
      cStatus = "Destination Host Unreachable"
    case cCode = 11004
      cStatus = "Destination Protocol Unreachable"
    case cCode = 11005
      cStatus = "Destination Port Unreachable"
    case cCode = 11006
      cStatus = "No Resources"
    case cCode = 11007
      cStatus = "Bad Option"
    case cCode = 11008
      cStatus = "Hardware Error"
    case cCode = 11009
      cStatus = "Packet Too Big"
    case cCode = 11010
      cStatus = "Request Timed Out"
    case cCode = 11011
      cStatus = "Bad Request"
    case cCode = 11012
      cStatus = "Bad Route"
    case cCode = 11013
      cStatus = "TimeToLive Expired Transit"
    case cCode = 11014
      cStatus = "TimeToLive Expired Reassembly"
    case cCode = 11015
      cStatus = "Parameter Problem"
    case cCode = 11016
      cStatus = "Source Quench"
    case cCode = 11017
      cStatus = "Option Too Big"
    case cCode = 11018
      cStatus = "Bad Destination"
    case cCode = 11032
      cStatus = "Negotiating IPSEC"
    case cCode = 11050
      cStatus = "General Failure"

    otherwise
      cStatus = "Unknown"
  endcase

  return cStatus

endproc
--


Commentaires
Aucun commentaire enregistré ...

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3