Page 1 sur 2

[RESOLU] Commandes inconnues

Publié : sam. 14/mai/2011 13:09
par Anonyme 2
Yo,
J'aimerais des informations sur des commandes non-déclérées dans le manuel purebasic, tel que:
IcmpCreateFile()
inet_addr_()
IcmpSendEcho()
Pourquoi ne sont-elles pas présentées dans l'aide, ou ou est-ce que je pourrais avoir des infos sur celles-ci, merci!

Re: Commandes inconnues

Publié : sam. 14/mai/2011 13:16
par dayvid
Sa ne ressemble pas a une commande de pure basic
je dirais de l'APEI plutôt :wink:

Je ne sais pas a quoi elle servent
Sinon pt'être une commande de procedure ou de macro :idea:

Re: Commandes inconnues

Publié : sam. 14/mai/2011 14:18
par falsam
@dayvid : Tu as raison ce sont des API pas des APEI :)
A.P.I. pour Application Programming Interface. Tu trouveras quelques explications sur en cliquant sur ce lien

@Dzoumaka : IcmpCreateFile_ inet_addr_ et IcmpSendEcho_ sont des API.

inet_addr est la fonction des Sockets Windows pour convertir une chaîne contenant une adresse à point en une in_addr.

IcmpCreateFile crée un handle sur lequel des requêtes ICMP (1) peuvent être adressées.

IcmpSendEcho envoie une requête en echo pour un ICMP (1) qui retourne une ou plusieurs réponses.

(1) ICPM : Internet Control Message Protocol

Quelques exemples glaner sur les forums consacrés à Pure Basic.

Tester la validité d'une adresse IP

Code : Tout sélectionner

;Tester la validité une adresse IP
IP.s = "192.168.1.0"

Result =inet_addr_(IP)

If Result = -1 
  Debug("L'IP "+ IP +" est erronée")
Else
  Debug("L'IP "+ IP +" est correcte")
EndIf

Pinger une adresse IP (Utilisation de IcmpSendEcho_ et IcmpCreateFile_)

Code : Tout sélectionner

EchoMessage.s = "MVPing make a Ping Test"
ResultSize.l = SizeOf(ICMP_ECHO_REPLY) + Len(EchoMessage)
*Result = AllocateMemory(ResultSize) 
*Echo.ICMP_ECHO_REPLY = *Result

If OpenConsole() 
  ConsoleTitle("MVPing")
  Repeat
    ConsoleColor(15,0)
    Print("Adresse IP: ")
    ConsoleColor(10,0)
    sIPAddress.s = Input() 
    PrintN("")
    
    If Len(sIPAddress ) > 0 
      hFile.l = IcmpCreateFile_() 
      IPAddress.l=MakeIPAddress(Val(StringField(sIPAddress,1,".")),Val(StringField(sIPAddress,2,".")),Val(StringField(sIPAddress,3,".")),Val(StringField(sIPAddress+".",4,"."))) 
      ConsoleColor(14,0)
      For Boucle.l = 1 To 4 
        lngResult.l = IcmpSendEcho_(hFile, IPAddress, EchoMessage, Len(EchoMessage), 0, *Result, ResultSize, 500) 
        PrintN("Ping " + sIPAddress + " Octets: " + Str(*Echo\DataSize) + " Temps: " + Str(*Echo\RoundTripTime) + " ms TTL:" + StrU(*Echo\Options\Ttl,#PB_Byte))
        Delay(500)
      Next 
      IcmpCloseHandle_(hFile)
    EndIf 
  Until sIPAddress= ""
  FreeMemory(*Result)
EndIf
End

Re: Commandes inconnues

Publié : sam. 14/mai/2011 14:41
par djes
Il faut que vous récupériez le fichier win32.hlp quelque part (désolé, je ne peux pas le mettre ici, il est sous copyright), et que vous le mettiez dans un dossier help dans votre dossier purebasic. Ceci fait, vous pourrez faire F1 pour avoir de l'aide sur la plupart des commandes de l'API Windows. Par contre, pour les plus récentes, il faudra utiliser Google.

Re: Commandes inconnues

Publié : sam. 14/mai/2011 17:32
par Anonyme 2
Yo,
Merci pour toutes vos réponses, je vais annalyser cela :)

Re: Commandes inconnues

Publié : sam. 14/mai/2011 17:34
par falsam
les fonctions natives de la library Network ne sont elles pas suffisantes ?

Re: Commandes inconnues

Publié : sam. 14/mai/2011 17:50
par Anonyme 2
Soif de connaissances falsam!!
(par exemple, je ne savais même pas qu'il existait des API windows lol :mrgreen: )

Re: Commandes inconnues

Publié : sam. 14/mai/2011 20:41
par Patrick88
djes a écrit :Il faut que vous récupériez le fichier win32.hlp quelque part (désolé, je ne peux pas le mettre ici, il est sous copyright), et que vous le mettiez dans un dossier help dans votre dossier purebasic. Ceci fait, vous pourrez faire F1 pour avoir de l'aide sur la plupart des commandes de l'API Windows. Par contre, pour les plus récentes, il faudra utiliser Google.
dispo sur le site web de purebasic , section lien.

pat

Re: Commandes inconnues

Publié : sam. 14/mai/2011 21:31
par Anonyme 2
Est-ce que ce code peut-être adapté en utilisant la bibliothèque Network?:

Code : Tout sélectionner

EchoMessage.s = "MVPing make a Ping Test"
ResultSize.l = SizeOf(ICMP_ECHO_REPLY) + Len(EchoMessage)
*Result = AllocateMemory(ResultSize) 
*Echo.ICMP_ECHO_REPLY = *Result
If OpenConsole() 
  ConsoleTitle("MVPing")
  Repeat
    ConsoleColor(15,0)
    Print("Adresse IP: ")
    ConsoleColor(10,0)
    sIPAddress.s = Input() 
    PrintN("")    
    If Len(sIPAddress ) > 0 
      hFile.l = IcmpCreateFile_() 
      IPAddress.l=MakeIPAddress(Val(StringField(sIPAddress,1,".")),Val(StringField(sIPAddress,2,".")),Val(StringField(sIPAddress,3,".")),Val(StringField(sIPAddress+".",4,"."))) 
      ConsoleColor(14,0)
      For Boucle.l = 1 To 4 
        lngResult.l = IcmpSendEcho_(hFile, IPAddress, EchoMessage, Len(EchoMessage), 0, *Result, ResultSize, 500) 
        PrintN("Ping " + sIPAddress + " Octets: " + Str(*Echo\DataSize) + " Temps: " + Str(*Echo\RoundTripTime) + " ms TTL:" + StrU(*Echo\Options\Ttl,#PB_Byte))
        Delay(500)
      Next 
      IcmpCloseHandle_(hFile)
    EndIf 
  Until sIPAddress= ""
  FreeMemory(*Result)
EndIf
End

Re: Commandes inconnues

Publié : sam. 14/mai/2011 21:58
par djes
Ne dites rien, mais je crois bien que le fichier est dispo là : http://www.carabez.com/downloads.html (/win32api_big.zip)
Si vous n'arrivez pas à l'ouvrir, allez voir aussi de ce côté là : http://support.microsoft.com/kb/917607

Re: Commandes inconnues

Publié : sam. 14/mai/2011 22:07
par Backup
Dzoumaka a écrit :Est-ce que ce code peut-être adapté en utilisant la bibliothèque Network?:
si le but est de faire un ping , il y a beaucoup plus court ;)

Re: Commandes inconnues

Publié : sam. 14/mai/2011 22:26
par Anonyme 2
@Dobro:
Oui oui, c'est vrai qu'il y a plus simple, mais c'est juste pour avoir une ptite idee des capacitées de la bibliothèque Network :wink:

Re: Commandes inconnues

Publié : dim. 15/mai/2011 10:45
par Backup
Dzoumaka a écrit :@Dobro:
Oui oui, c'est vrai qu'il y a plus simple, :wink:
ha ; alors tu ferai comment ? (les autres ne répondez pas ..) :lol: (petit test pour voir... )

Re: Commandes inconnues

Publié : dim. 15/mai/2011 15:49
par Anonyme 2
Démarrer>Cmd>ping :wink:

Re: Commandes inconnues

Publié : dim. 15/mai/2011 16:20
par Backup
Dzoumaka a écrit :Démarrer>Cmd>ping :wink:
:roll: :roll: en Purebasic !! on parle bien de programmation ici non ? 8O