Aller au contenu

Liaison entre VLISP et HTTP ou FTP


l56

Messages recommandés

Salut

 

Un exemple pour télécharger un fichier sur internet, donc pour tester si le fichier existe.

 

(defun download (url file / adob fso http ok taille tbl)
 (setq http (vlax-create-object "MSXML2.XMLHTTP")
adob (vlax-create-object "ADODB.Stream")
fso  (vlax-create-object "Scripting.FileSystemObject")
 )
 (vlax-invoke-method http 'open "get" url :vlax-false)
 (if (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke (list http 'send)))
   (princ (strcat "\nLe lien " url " n'est pas valide."))
   (if (eq (vlax-get http 'status) 200)
     (if (vl-catch-all-error-p (setq taille (vl-catch-all-apply 'vlax-invoke (list http 'getResponseHeader "Content-Length"))))
(princ "\nErreur de lecture sur la taille du fichier.")
(if (< (atoi taille) (vlax-get (vlax-invoke fso 'getdrive (substr (vlax-invoke fso 'getabsolutepathname file) 1 1)) 'freespace))
  (progn
    (princ "\nTéléchargement en cours.")
    (princ)
    (if (vl-catch-all-error-p (setq tbl (vl-catch-all-apply 'vlax-get-property (list http "ResponseBody"))))
      (princ "\nImpossible de télécharger le fichier.")
      (if (not (vl-catch-all-error-p (vl-catch-all-apply '(lambda()
							   (vlax-put adob "Type" 1)
							   (vlax-invoke adob "Open")
							   (vlax-invoke-method adob "Write" tbl)
							   (vlax-invoke adob "SaveToFile" file 2)
							 )
				     )
	       )
	  )
	(setq ok T)
      )
    )
  )
  (princ "\nPlus de place sur le périphérique de destination.")
)
     )
     (princ (strcat "\nLe lien " url " n'est pas disponible."))
   )
 )
 (mapcar 'vlax-release-object (list http adob fso))
 (terpri)
 ok
)

 

Ou tu peux aussi essayer avec vla-getremotefile

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

quand on voit ca, on comprend pourquoi il y a une zone securisée sur la 2014

en vlisp on a accès au shell a internet

je n'ose pas penser a ce qu il est possible de faire en .net

 

les hackers sur autocad , c'est pour bientôt

si ce n'est pas déjà fait

Vous fîtes ce que vous pûtes

et vous m'épatâtes !!!!

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Ce que tu vois n'est qu'une traduction en lisp de ce qui peut se faire dans d'autres langages.

Et ce n'est que la surface. C'est avec ce type liaisons que l'on trouve des failles de sécurité.

Il faut dire que protéger des données en entreprise (même chez les éditeurs de logiciels) n'est pas une priorité et c'est bien dommage.

Si quelqu'un se donne la peine de gratter un peu, il trouvera assez facilement.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

  • 5 semaines après...

Bonjour,

 

La vérification du lien par

(vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke (list http 'send)))

provoque la création du fichier dans un dossier du type ...\Temporary Internet Files\Content.IE5\O2VBX9YT.

C'est un probleme car quand on redemande cette vérification et que le fichier n'est plus sur le FTP, il considere qu'il y est encore.

 

J'ai l'impression qu'il verifie d'abord dans les dossiers Windows et s'il le trouve, il ne verifie pas sur le FTP.

 

Il faudrai, avant de faire cette verification, trouver et supprimer le fichier du disque dur.

 

Comment peut-on faire ?

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité