La gestion des protocoles HTTP, FTP, SOAP, etc.

Dimension: px
Commencer à balayer dès la page:

Download "La gestion des protocoles HTTP, FTP, SOAP, etc."

Transcription

1 Chapitre 16 La gestion des protocoles HTTP, FTP, 16.1 Fonctions réseau (de base) Réseau Les sockets FTP curl (client URL Library) SOAP

2

3 Réseau Fonctions réseau (de base) Réseau Les fonctions présentées dans ce chapitre ne permettent pas de réels développements, mais constituent une "trousse à outils" parfois nécessaire dans la manipulation d informations réseau (comme ce peut être le cas, par exemple, avec l utilisation des sockets). Elles ne nécessitent aucune installation particulière. Adresses IP et DNS L opération la plus souvent sollicitée est certainement celle qui consiste à déterminer l adresse IP d une machine lorsque l on ne connaît que son nom. Pour cela, vous disposez de la fonction gethostbyname(). gethostbyname() Retourne l adresse IP de la machine précisée par son nom. $nommachine string gethostbyname(string $nommachine) Nom de la machine. Adresse IP de la machine, ou $nommachine si aucune adresse IP n a pu être trouvée. Ainsi, le code suivant : <?php echo gethostbyname("localhost");?> nera très probablement : Alors que : <?php echo gethostbyname(" nera une adresse IP publique comme, par exemple,

4 Chapitre 16 La gestion des Il est également possible de réaliser l opération inverse, à savoir récupérer un nom de machine à partir de son adresse IP grâce à gethostbyaddr(). gethostbyaddr() Retourne un nom de machine associé à l adresse IP précisée (tel qu on le trouve dans le fichier /etc/hosts des sytèmes UNIX/Linux). $adresseip string gethostbyaddr(string $adresseip) Adresse IP de la machine. Nom associé à la machine, ou $adresseip si aucun nom n a pu être trouvé. Le code suivant : <?php echo gethostbyaddr(" ");?> pourra ner : localdomain.localhost On notera au passage que l opération n est pas nécessairement réversible. Si gethostbyname("localhost") ne " " cela n implique pas que gethostbyaddr(" ") ne "localhost". En effet, une machine peut avoir plusieurs noms (via des alias), et c est donc le nom principal qui est né par gethostbyaddr(). De même, une unique machine peut posséder plusieurs adresses IP. Pour en déterminer la liste, vous pouvez faire appel à gethostbynamel(). gethostbynamel() Retourne la liste des adresses IP de la machine précisée par son nom. $nommachine array gethostbynamel($nommachine) Nom de la machine. Tableau indexé des adresses IP de la machine, ou FALSE si aucune adresse IP n a pu être trouvée. PHP dispose de fonctions permettant de convertir des adresses IP précisées sous la forme "classique" xxx.xxx.xxx.xxx en adresses sous la forme d entiers, et réciproquement. 1266

5 Réseau ip2long() Convertit une adresse IP du format "xxx.xxx.xxx.xxx" en un entier. : int ip2long(string $adresseip) $adresseip Adresse IP au format "xxx.xxx.xxx.xxx". Adresse IP sous forme d un entier. Entier signé ou non Un simple echo du résultat fourni par ip2long peut conduire à l affichage d un entier négatif. Or celui-ci est théoriquement non signé. Il est donc préférable de faire appel à printf("%u", ip2long($adresseip)). long2ip() Convertit une adresse IP d entier au format "xxx.xxx.xxx.xxx". int ip2long(string $adresseip) $adresseip Adresse IP sous forme d un entier. Adresse IP au format "xxx.xxx.xxx.xxx". Dans certaines circonstances, comme par exemple pour déterminer si une adresse a des chances d être valide, il peut être utile de déterminer si le nom de domaine indiqué existe, ou, plus précisément, vérifier si ce nom est connu du DNS. DNS DNS sont les initiales anglaises de "Domain Name Server", autrement dit "Serveur de nom de domaine". En deux mots, ce serveur contient les tables de correspondances qui permettent de retrouver une machine (ou son adresse IP) à partir de son nom. Vous trouverez plus d informations sur le site Internet : Pour tester la présence d un nom de machine auprès du DNS vous ferez appel à checkdnsrr(). checkdnsrr() (non disponible sous Windows) Teste la présence d un nom de machine ou d une adresse IP auprès du DNS. Notez que dans la version 5 de PHP, cette fonction est baptisée DNS_check_record() (tout en assurant la compatibilité). 1267

6 Chapitre 16 La gestion des boolean checkdnsrr(string $nommachine [, string $type]) $nommachine Nom de la machine ou adresse IP. $type Précise le type d entrée recherchée (par défaut MX) : A (Address = Adresse) : une simple adresse. CNAME (Cannonical Name = Nom canonique) : un alias. MX (Mail exchanger = Distributeur de courrier) : machine permettant la réception de mails. NS (Name Server = Serveur de nom) : un serveur de nom. PTR (Pointer = Pointeur) : un renvoi sur une autre machine. SOA (Start Of Authority) : une zone. ANY : l ensemble des options précédentes. TRUE si la machine est connue du DNS (pour le type précisé), FALSE sinon. Voici donc une petite fonction permettant non pas de vérifier la validité d une adresse , mais de débusquer certaines adresses manifestement non valides. <?php function test ($ ) { $domaine = ); return checkdnsrr($domaine, MX ); } $ = "damien@toutestfacile.com"; if (test ($ )) { echo "Je ne peux pas assurer que cette adresse est valide ". "mais elle n est pas totalement farfelue"; } else { echo "Pfuuu... C est n importe quoi cet , ". "jamais je ne pourrai envoyer d à cette adresse"; }?> Pour ce qui concerne les entrées MX du fichier de configuration du DNS, il est possible d en savoir un peu plus grâce à la fonction getmxrr(). getmxrr() (Non disponible sous Windows) Retourne la liste des machines enregistrées auprès du DNS pour la gestion des mails. Notez que dans la version 5 de PHP, cette fonction est baptisée DNS_get_mx() (tout en assurant la compatibilité). $nommachine $machines boolean getmxrr(string $nommachine, array &$machines [, array &$poids]) Nom de la machine. Référence sur une variable dans laquelle sera copié un tableau indexé contenant les noms des machines devant "router" les mails. 1268

7 Réseau $poids Référence sur une variable dans laquelle sera copié un tableau indexé contenant les poids associés aux machines. Les mails seront prioritairement "routés" par la machine de plus faible poids. TRUE si la machine est connue du DNS, FALSE sinon. Protocoles et services PHP propose également des fonctions permettant de récupérer des informations plus intimement liées au serveur. Il est, par exemple, possible de connaître le port associé à un service ou, inversement, de retrouver le nom d un service à partir de son numéro de port. getservbyname() Retourne le port associé au service donné. int getservbyname(string $service, string $protocole) $service Nom du service (ex. : "ftp", "http",...) $protocole Nom du protocole ("tcp" ou "udp"). Numéro de port, ou FALSE en cas d échec. getservbyport() Retourne le nom du service associé au port donné. int getservbyport(string $port, string $protocole) $port Numéro du port. $protocole Nom du protocole ("tcp" ou "udp"). Nom du service, ou FALSE en cas d échec. Ainsi, pour connaître le port associé au service FTP, ou le nom du service associé au port 80, l on pourra utiliser le script suivant : <?php echo getservbyname("ftp", "tcp")."<br />"; echo getservbyport(80, "tcp");?> ce qui nera (probablement) : 21 http 1269

8 Chapitre 16 La gestion des Il est également possible de connaître le numéro associé à un protocole ou, inversement, de retrouver le nom d un protocole à partir de son numéro. getprotobyname() Retourne le numéro associé à un nom de protocole (tel qu on le trouve dans le fichier /etc/protocols des systèmes UNIX/Linux). $nomprotocole int getprotobyname(string $nomprotocole) Nom du protocole. Numéro du protocole, ou 1 s il n existe pas. getprotobynumber() Retourne le nom associé à un numéro de protocole (tel qu on le trouve dans le fichier /etc/protocols des systèmes UNIX/Linux). $numeroprotocole int getprotobynumber(string $numeroprotocole) Numéro du protocole. Nom du protocole, ou FALSE s il n existe pas. Voici un exemple d utilisation. Le script suivant : <?php echo getprotobyname("tcp")."<br />"; echo getprotobynumber(62)."<br />";?> pourra ner : 6 cftp Les sockets Pour communiquer directement avec un service d une machine donnée, vous serez peut-être amené à utiliser les sockets. Vous pouvez ainsi communiquer directement avec un serveur FTP, HTTP, NNTP (newsgroup), etc, et maîtriser plus finement les opérations que si vous utilisiez les commandes de plus haut niveau (plus couramment utilisées). Le principe d utilisation est simple et se déroule en quatre grandes étapes : 1270

9 Les sockets j Ouverture de la connexion ; j Configuration de la connexion ; j Lecture/écriture sur la socket ; j Fermeture de la connexion. Un exemple d application est donné à la fin de ce sous-chapitre. Ouverture de la connexion L ouverture d une connexion se fait via la fonction fsockopen(). fsockopen() Ouvre une connexion sur une socket. $serveur $port $codeerreur $msgerreur $delaiexpiration resource fsockopen(string $serveur, int $port [, int &$codeerreur [, string &$msgerreur [, double $delaiexpiration]]]) Nom du serveur sur lequel doit se porter la connexion (éventuellement précédé de "udp://" pour une connexion UDP). Numéro du port sur lequel établir la connexion. Référence sur une variable dans laquelle sera copié le code d erreur levé. Référence sur une variable dans laquelle sera copié le message d erreur levé. Délai (en secondes) au-delà duquel la tentative de connexion doit être abandonnée (par défaut 60 secondes). Identifiant de connexion à la socket, ou FALSE en cas d erreur. La fonction fsockopen() possède un équivalent permettant l ouverture d une connexion persistante (nous n avons pas vérifié le caractère persistant et réutilisable de la connexion). Il s agit de la fonction pfsockopen(), qui possède exactement la même syntaxe que fsockopen(). Configuration de la connexion Il est possible de jouer sur deux paramètres de connexion : j Le mode de lecture bloquant ou non ; j Le délai d expiration (timeout) de la socket. La lecture est dite en mode bloquant si la fonction de lecture doit attendre qu un message lui soit adressé pour "rendre la main" au programme. Dans le cas contraire, elle est dite non bloquante, et la fonction de lecture ne simplement le contenu de la mémoire tampon 1271

10 Chapitre 16 La gestion des (espace stockant les messages nouvellement reçus) qui pourra éventuellement être vide (si le message n est pas encore arrivé). Par défaut, en l absence d appel à la fonction socket_set_blocking(), le mode de lecture est bloquant. socket_set_blocking() Détermine si le mode de lecture de la socket doit être ou non bloquant. $idsocket $modelecture boolean socket_set_blocking(resource $idsocket, boolean $modelecture) Identifiant de la socket tel que né par fsockopen(). TRUE si le mode de lecture doit être bloquant, FALSE sinon. FALSE en cas d échec, TRUE sinon. La durée de vie de la connexion à la socket peut être limitée par la fonction socket_set_timeout(). socket_set_timeout() Détermine la durée de vie maximale de la socket. $idsocket $secondes $microsecondes boolean socket_set_timeout(resource $idsocket, int $secondes, int $microsecondes) Identifiant de la socket tel que né par fsockopen(). Partie "secondes" de la durée de vie de la socket exprimée en "secondes:microsecondes". Partie "microsecondes" de la durée de vie de la socket exprimée en "secondes:microsecondes". FALSE en cas d échec, TRUE sinon. Lecture/écriture sur la socket La lecture et l écriture sur la socket s effectuent à l aide des fonctions qui ont déjà été vues dans le chapitre relatif aux fichiers. Vous pourrez ainsi utiliser fgets($idsocket, $nboctets); pour lire jusqu à $nboctets octets sur la socket, fputs($idsocket, $chaine); pour envoyer au serveur une chaîne de caractères via la socket, ou encore feof($idsocket); pour tester si la fin de fichier (fin d émission) a été atteinte. 1272

11 Les sockets Fermeture de la connexion Le fermeture de la connexion s opère exactement de la même façon que celle d un fichier, c est-à-dire par la commande fclose($idsocket). Informations sur la connexion Pour connaître l état d une socket, vous pouvez faire appel à la fonction socket_get_status(). socket_get_status() Retourne quelques informations sur l état de la socket. array socket_get_status(resource $idsocket) $idsocket Identifiant de la socket tel que né par fsockopen(). Tableau associatif possédant les clés : "time_out" associée à une valeur de type booléen précisant si la durée de vie de la socket a expiré ou non. "blocked" associée à une valeur de type booléen précisant si la lecture sur la socket se fait en mode bloquant ou non. "eof" associée à une valeur de type booléen précisant si un indicateur de fin de fichier a été détecté ou non. "unread_bytes" associée à une valeur de type entier précisant le nombre d octets actuellement dans la mémoire tampon de lecture de la socket. Application Pour mettre en place une communication via une socket, l essentiel est de bien connaître le langage de communication avec le serveur. Si vous avez conçu votre propre serveur, vous savez certainement comment il fonctionne autrement, il faut se référer aux spécifications. Dans le cas d un serveur HTTP, le principe est assez simple et a été évoqué dans le chapitre En-têtes. Vous pouvez vous reporter à l annexe "Les en-têtes" pour plus de détails. Pour récupérer un document via la méthode GET, il suffit de lui envoyer les instructions "GET <nom du document> HTTP/<norme HTTP>", et, dans le cas de la norme 1.1, il faut au minimum communiquer l en-tête Host. Pour récupérer la page d accueil d un site, il faudra donc, par exemple, envoyer les instructions suivantes : GET / HTTP/1.1 Host: localhost 1273

12 Chapitre 16 La gestion des ce qui nous donne le script suivant : Listing 16.1 : socket_01.php <?php // Exemple de récupération d un document via HTTP // en utilisant directement les sockets. $serveur = " $document = "/"; echo "<b>lecture de $serveur$document</b><br />"; $idsocket = fsockopen($serveur, 80, $codeerreur, $msgerreur); if (!$idsocket) { echo "La connexion via la socket a échouée.<br />"; echo "Code d erreur: $codeerreur<br />"; echo "Message d erreur: $msgerreur<br />"; die(); } // Configuration de la connexion // en mode bloquant // et avec un timeout de 5 minutes socket_set_blocking($idsocket, TRUE); socket_set_timeout($idsocket, 5, 0); // Envoi de données au serveur fputs($idsocket, "GET $document HTTP/1.1\r\n"); fputs($idsocket, "Host: localhost\r\n"); fputs($idsocket, "\r\n"); // Marque la fin de l en-tête?> // Lecture de la réponse while (!feof($idsocket)) { $donnees = fgets($idsocket, 512); echo "<xmp>$donnees</xmp>"; } // Affichage du code source qui fournira, par exemple, le résultat suivant (début de la réponse uniquement) : Lecture de HTTP/ OK Date: Tue, 28 May :39:34 GMT Server: Apache/ (Unix) Debian GNU/Linux mod_python/2.7.8 Python/1.5.2 Last-Modified: Fri, 24 May :51:38 GMT ETag: " e6e-3cee7daa" Accept-Ranges: bytes Content-Length: Content-Type: text/html 1274

13 FTP <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>GNU s Not Unix! - the GNU Project and the Free Software Foundation (FSF)</title> <META HTTP-EQUIV="Keywords" CONTENT="GNU, FSF, Free Software Foundation, Linux, Emacs, GCC, Unix, Free Software, Operating System, GNU Kernel, HURD, GNU HURD"> <META HTTP-EQUIV="Description" CONTENT="Since 1983, developing the free Unix-like operating system GNU, Comme vous pouvez le constater, nous récupérons ainsi non seulement le code source HTML de la page, mais également l en-tête né par le serveur (le début du code source se trouvant juste après la première ligne laissée vide). L utilisation des sockets permet ici de récupérer l en-tête né par le serveur (et ainsi, par exemple, de vérifier le "Content-type"), mais aussi de préciser notre propre en-tête de requête (en utilisant par exemple le "User-agent" d Internet Explorer ou de Mozilla, et en testant différentes valeurs pour "Accept-Language", etc.) FTP Les fonctions de la bibliothèque FTP permettent d accéder en tant que client à un serveur FTP. Installation Sous Windows Que ce soit avec l archive du PHP Group ou avec EasyPHP, les fonctions FTP sont intégrées à PHP. Sous Linux Vous devrez recompiler PHP avec l option enable ftp (avec les versions 3 de PHP, il s agissait de l option with ftp). Vous pouvez vous reporter au chapitre "Prise en main" pour plus de détails sur la façon de compiler PHP. Vérification Pour vérifier que le support FTP est activé, appelez un script contenant <?php phpinfo();?>. Celui-ci doit alors laisser apparaître : 1275

14 Chapitre 16 La gestion des Figure 16.1 : phpinfo() FTP Les fonctions de base Connexion/déconnexion La première étape consiste, comme toujours, à se connecter au serveur. ftp_connect() Permet de se connecter à un serveur FTP. resource ftp_connect(string $serveur [, int $port [, int $delaiexpiration]]) $serveur Adresse du site FTP. $port Port du serveur FTP si celui-ci est différent du port usuel 21. $delaiexpiration Temps en secondes pour toute commande avant abandon ; par défaut cette valeur vaut 90 secondes. Un identifiant de connexion ou FALSE en cas d erreur. Une fois connecté, il faut s identifier (sans quoi rien n est possible). ftp_login() Identification auprès du serveur. $idconnexion $identifiant $motdepasse boolean ftp_login(resource $idconnexion, string $identifiant, string $motdepasse) Identifiant de connexion obtenu par ftp_connect(). Identifiant (login) de l utilisateur. Mot de passe utilisateur. TRUE si la connexion a pu se faire, FALSE sinon. La déconnexion s effectuera, quant à elle, grâce à la fonction ftp_close(). 1276

15 FTP ftp_close() Permet de clore la connexion FTP. $idconnexion boolean ftp_close(resource $idconnexion) Identifiant de connexion obtenu par ftp_connect(). TRUE en cas de succès. ftp_close() possède un alias appelé ftp_quit(). Déplacement dans l arborescence Une fois que l on est identifié, il est possible d effectuer toutes les opérations courantes en ligne, comme, par exemple, changer de répertoire : ftp_chdir() Permet de changer de répertoire. $idconnexion $repertoire boolean ftp_chdir(resource $idconnexion, string $repertoire) Identifiant de connexion obtenu par ftp_connect(). Répertoire de destination. TRUE en cas de succès, FALSE sinon. De son côté, ftp_cdup() permet de monter d un niveau dans la hiérarchie des répertoires. ftp_cdup() Change de répertoire pour monter d un niveau. boolean ftp_cdup(resource $idconnexion) $idconnexion Identifiant de connexion obtenu par ftp_connect(). TRUE en cas de succès, FALSE sinon. Liste du contenu d un répertoire Il est possible également de voir le contenu d un répertoire : 1277

16 Chapitre 16 La gestion des ftp_rawlist() Permet d obtenir une liste détaillée des fichiers d un répertoire (et éventuellement de ses sous-répertoires). Le résultat est identique à ls l. array ftp_rawlist(resource $idconnexion, string $repertoire [, boolean $recursif]) $idconnexion Identifiant de connexion obtenu par ftp_connect(). $repertoire Répertoire à lister. $recursif TRUE si le contenu des sous-répertoires doit également être né, FALSE (valeur par défaut) sinon. (Option disponible depuis PHP 4.3.0) Tableau indexé des différents fichiers du répertoire avec leur détail (droits, taille, date). ftp_nlist() Permet d obtenir une liste des fichiers d un répertoire. Le résultat est identique à ls. $idconnexion $repertoire array ftp_nlist(resource $idconnexion, string $repertoire) Identifiant de connexion obtenu par ftp_connect(). Répertoire à lister. Tableau des différents fichiers du répertoire. Création, suppression, renommage ftp_mkdir() Création d un nouveau répertoire. boolean ftp_mkdir(resource $idconnexion, string $repertoire) $idconnexion Identifiant de connexion obtenu par ftp_connect(). $repertoire Nom du répertoire à créer avec, éventuellement, son chemin. TRUE si le répertoire a pu être créé, FALSE sinon. 1278

17 FTP ftp_rmdir() Permet d effacer un répertoire vide. $idconnexion $chemin boolean ftp_rmdir(resource $idconnexion, string $chemin) Identifiant de connexion obtenu par ftp_connect(). Répertoire à effacer avec, éventuellement, son chemin. TRUE si le répertoire a été effacé, FALSE sinon. ftp_delete() Permet d effacer un fichier. $idconnexion $chemin boolean ftp_delete(resource $idconnexion, string $chemin) Identifiant de connexion obtenu par ftp_connect(). Chemin du fichier à effacer avec, éventuellement, son chemin. TRUE si le fichier a été effacé, FALSE sinon. ftp_rename() Permet de renommer un fichier ou un répertoire. $idconnexion $anciennom $anciennom Transfert de fichiers boolean ftp_rename(resource $idconnexion, string $anciennom, $nouveaunom) Identifiant de connexion obtenu par ftp_connect(). Ancien nom du fichier ou répertoire. Nouveau nom du fichier ou répertoire. TRUE si le fichier ou répertoire a pu être renommé, FALSE sinon. Les fonctions de transfert de fichiers sont également disponibles. Il est ainsi possible de copier un fichier du serveur FTP vers le serveur web (ftp_get()) ou le contraire (ftp_put()). ftp_get() Permet de récupérer un fichier d un serveur FTP. 1279

18 Chapitre 16 La gestion des $idconnexion $cheminfichierlocal boolean ftp_get(resource $idconnexion, string $cheminfichierlocal, string $cheminfichierdistant, int $mode [, int $offset]) Identifiant de connexion obtenu par ftp_connect(). Chemin avec le nom du fichier où enregistrer le fichier. $cheminfichierdistant Chemin avec le nom du fichier à récupérer. $mode FTP_ASCII (pour les fichiers textes) ou FTP_BINARY (pour les fichiers binaires). $offset Position dans le fichier distant du premier octet à transférer. (Paramètre ajouté depuis PHP 4.3.0) TRUE si le fichier a pu être copié, FALSE sinon. ftp_put() Télécharge un fichier du serveur web vers le serveur FTP. $idconnexion $fichierdistant $fichierlocal $mode $offset boolean ftp_put(resource $idconnexion, string $fichierdistant, string $fichierlocal, int $mode [, int $offset]) Identifiant de connexion obtenu par ftp_connect(). Destination sur le serveur web. Chemin sur le serveur web local. FTP_ASCII (pour les fichiers textes) ou FTP_BINARY (pour les fichiers binaires). Position dans le fichier local du premier octet à transférer. (Paramètre ajouté depuis PHP 4.3.0) TRUE si le fichier a pu être copié, FALSE sinon. Les fonctions ftp_get() et ftp_put() possèdent des variantes permettant d utiliser un pointeur vers un fichier. Cela permet de garder le fichier accessible en lecture ou écriture une fois copié. ftp_fget() Permet de télécharger un fichier d un serveur FTP dans un fichier (ou plus généralement un stream) ouvert. $idconnexion $idfichier boolean ftp_fget(resource $idconnexion, resource $idfichier, string $fichierdistant, int $mode [, int $offset]) Identifiant de connexion obtenu par ftp_connect(). Identifiant (obtenu par fopen()) du fichier à remplir. 1280

19 FTP $fichierdistant $mode $offset Nom du fichier distant à récupérer. FTP_ASCII (pour les fichiers textes) ou FTP_BINARY (pour les fichiers binaires). Position dans le fichier distant du premier octet à transférer. (Paramètre ajouté depuis PHP 4.3.0) TRUE si le fichier a pu être récupéré, FALSE sinon. ftp_fput() Permet de déposer le contenu d un fichier ouvert (ou plus généralement un stream) sur un serveur FTP. $idconnexion $fichierdistant $idfichier $mode $offset boolean ftp_fput(resource $idconnexion, string $fichierdistant, resource $idfichier, int $mode [, int $offset]) Identifiant de connexion obtenu par ftp_connect(). Nom qu aura le fichier sur le serveur FTP. Identifiant (obtenu par fopen()) du fichier à copier. FTP_ASCII (pour les fichiers textes) ou FTP_BINARY (pour les fichiers binaires). Position dans le fichier local du premier octet à transférer. (Paramètre ajouté depuis PHP 4.3.0) TRUE si le fichier a pu être mis sur le serveur FTP, FALSE sinon. Exemple d application Les fonctions vues jusque-là sont les fonctions les plus couramment utilisées, et nous permettent de réaliser un script de client FTP. Dans le script présenté, l utilisateur pourra naviguer sur le compte FTP, ajouter des fichiers, en supprimer, en renommer, ajouter et supprimer des répertoires, uploader ou télécharger des fichiers. 1281

20 Chapitre 16 La gestion des Figure 16.2 : Client FTP en PHP Voici le script en question : Listing 16.2 : ftp.php <html> <head> <title>client FTP</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <center><font color="blue"><h1>client FTP 12.9</h1></font></center> <font color="red"> <?php // On augmente le temps de vie du script à 100 secondes set_time_limit(100); // Parametres de connexion $serveur = "ftp.monsite.com"; $utilisateur = "utilisateur"; $motdepasse = "motdepasse"; // Connexion au serveur FTP $connexion = ftp_connect($serveur) or die("serveur FTP inexistant"); // Identifiaction sur le serveur FTP ftp_login($connexion, $utilisateur, $motdepasse) or die("utilisateur inconnu ou mauvais mot de passe"); $repertoire = $_GET["repertoire"]!=""? $_GET["repertoire"] : "/"; 1282

21 FTP // Verifie si "effacer" est passé en parametre if ($_GET["effacer"]!="") { effacer($_get["effacer"], $repertoire); } // Verifie si "effacerrep" est passé en parametre if ($_GET["effacerrep"]!="") { effacerrep($_get["effacerrep"], $repertoire); } // Verifie si "telecharger" est passé en parametre if ($_GET["telecharger"]!="") { telecharger($_get["telecharger"], $repertoire); } // Verifie si "nouveaurep" est passé en parametre if ($_POST["nouveaurep"]!="") { nouveaurep($_post["nouveaurep"], $repertoire); } // Verifie si "ajouterfichier" est passé en parametre if ($_POST["ajouterfichier"]!="") { ajouterfichier($_post["ajouterfichier"], $repertoire); } // Verifie si "nouveaunom" est passe en parametre if ($_POST["nouveaunom"]!="") { nouveaunom($_post["nouveaunom"], $_POST["fichier"], $repertoire); }?> </font> <form method="post"> Nouveau Repertoire:<input type="text" name="nouveaurep" /><br /> <form> <form method="post"> Ajouter fichier:<input type="text" name="ajouterfichier" /> <font size="1">le chemin doit etre absolou ou relatif a l endroit ou est place ce script.</font><br /> <form> <?php // Changement de repertoire ftp_chdir($connexion, $repertoire); // Affichage du contenu du repertoire listerrepertoire($repertoire); ftp_close($connexion);?> </body> </html> <?php function listerrepertoire($repertoire) { global $connexion; echo "<h2><font color=\"green\">".$repertoire."</font></h2>\n"; // Affichage du lien vers le repertoire superieur if ($repertoire!="/") { echo "<a href=\"ftp1.php?repertoire=". 1283

22 Chapitre 16 La gestion des substr(substr($repertoire, 0, -1), 0, 1+strrpos(substr($repertoire, 0, -1), "/"))."\"> <h2><font color=\"green\">". substr(substr($repertoire, 0, -1), 0, 1+strrpos(substr($repertoire, 0, -1), "/")). "</font></h2></a>\n"; } // Recuperation de la liste des fichiers $liste = ftp_rawlist($connexion, $repertoire); echo "<table>"; foreach($liste as $fichier) { echo "<tr>"; if (substr($fichier,0,1)=="d") { echo "<td>"; echo "<a href=\"ftp1.php?repertoire=$repertoire". substr($fichier,56)."/\">". "<b>".substr($fichier,56)."/</b></a><br />\n"; echo "</td><td>"; echo "<a href=\"ftp1.php?repertoire=$repertoire&effacerrep=". substr($fichier,56)."\">effacer ce repertoire</a><br />\n"; } else { echo "<td>"; echo "<a href=\"ftp1.php?repertoire=$repertoire&telecharger=". substr($fichier,56)."\"><b>".substr($fichier,56)."</b>\n"; echo "</td><td>"; echo "<a href=\"ftp1.php?repertoire=$repertoire&effacer=". substr($fichier,56)."\">effacer</a><br />\n"; echo "</td>"; echo "</tr><tr><td> </td><td>"; echo "<form method=\"post\">". "<input type=\"hidden\" name=\"fichier\" value=\"$repertoire\"".substr($fichier,56)."\"/> <input type=\"text\" name=\"nouveaunom\" /> <input type=\"submit\" value=\"renommer\"/></form>"; echo "</td>"; } echo "</tr>"; } echo "</table>"; } // Efface un fichier function effacer($fichier, $repertoire) { global $connexion; if (@ftp_delete($connexion, $repertoire.$fichier)) echo "Le fichier $fichier a ete supprime"; else echo "Impossible d effacer le fichier $fichier"; } // Efface un repertoire vide function effacerrep($fichier, $repertoire) { global $connexion; 1284

23 FTP } if (@ftp_rmdir($connexion, $repertoire.$fichier)) echo "Le repertoire $fichier a ete supprime"; else echo "Impossible d effacer le repertoire $fichier assurez vous "."qu il est vide"; // Telecharge un fichier depuis le site FTP function telecharger($fichier, $repertoire) { global $connexion; if (@ftp_get($connexion, $fichier, $repertoire.$fichier, FTP_BINARY)) echo "Le fichier $fichier devrait etre telecharge dans le repertoire". " ou se trouve ce script"; else echo "Impossible d ouvrir le fichier $fichier"; } // Cree un repertoire function nouveaurep($fichier, $repertoire) { global $connexion; if (@ftp_mkdir($connexion, $repertoire.$fichier)) echo "Le nouveau repertoire $fichier a ete cree"; else echo "Impossible de creer le repertoire $fichier"; } // Renomme un fichier function nouveaunom($nouveaunom, $fichier, $repertoire) { global $connexion; if (@ftp_rename($connexion, $fichier, $repertoire.$nouveaunom)) echo "Le fichier $fichier a ete renomme"; else echo "Impossible de renommer $fichier"; } // Ajoute un fichier function ajouterfichier($fichier, $repertoire) { global $connexion; $nomfichier = (strrchr($fichier, "/"))? $repertoire.substr(strrchr($fichier, "/"), 1) : $repertoire.$fichier; if (@ftp_put($connexion, $nomfichier, $fichier, $FTP_BINARY)) echo "Le fichier $fichier a ete ajoute"; else echo "Impossible d ajouter $fichier"; }?> 1285

24 Chapitre 16 La gestion des Transfert de fichiers en mode asynchrone Les fonctions ftp_put(), ftp_get(), ftp_fput() et ftp_fget() sont des fonctions synchrones. C est à dire que lorsque le script PHP traite ces fonctions il ne fait plus rien d autre en attendant le transfert complet des données. Depuis, PHP 4.3.0, ces fonctions ont leur équivalent en mode asynchrone. Il s agit des fonctions ftp_nb_put(), ftp_nb_get(), ftp_nb_fput(), ftp_nb_fget(). Leur syntaxe est tout à fait identique si ce n est qu elles ne nent pas un booléen mais un entier dont les valeurs possibles sont les mêmes que celles nées par la fonction décrite ci-après. Une fois lancées, ces fonctions transfèrent bien les fichiers mais le script, lui, continue pour traiter les instructions suivantes. Pour savoir si la précédente opération est terminée vous devrez faire appel à la fonction ftp_nb_continue(). ftp_nb_continue Teste si la dernière opération FTP asynchrone lancée est terminée ou non. : int ftp_nb_continue(resource $idconnexion) $idconnexion Identifiant de connexion obtenu par ftp_connect(). FTP_MOREDATA si le transfert est en cours, FTP_FINISHED s il est terminé ou FTP_FAILED s il a échoué. Autres fonctions ftp_exec() Permet d exécuter une commande sur le serveur FTP si celui-ci l autorise. boolean ftp_exec(resource $idconnexion, string $commande) $idconnexion Identifiant de connexion obtenu par ftp_connect(). $commande Commande à exécuter sur le serveur. TRUE en cas de succès, FALSE sinon. ftp_site() Envoie une commande à un serveur FTP de type SITE xxxx. boolean ftp_site(resource $IdConnexion, string $commande) $idconnexion Identifiant de connexion obtenu par ftp_connect(). $commande Commande à exécuter. TRUE en cas de succès, FALSE sinon. 1286

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

Serveurs de noms Protocoles HTTP et FTP

Serveurs de noms Protocoles HTTP et FTP Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et

Plus en détail

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068 HTTP/1.1 RFC 2068 1 Caractéristiques Niveau application Sans état Tout transfert de données Au dessus du protocole TCP Largement utilisé dans le World Wide Web Utilise les normes : URI (Uniform Resource

Plus en détail

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

Réseaux. 1 Généralités. E. Jeandel

Réseaux. 1 Généralités. E. Jeandel 1 Généralités Réseaux Couche Application E. Jeandel Couche application Dernière couche du modèle OSI et TCP/IP Échange de messages entre processus Protocole Un protocole de niveau application doit spécifier

Plus en détail

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Opération & Support http://www.keyyo.fr/fr/support/expert.php Version 1.0.7 Sommaire 1 Portée du document... 3 2 Introduction à la configuration...

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

(structure des entêtes)

(structure des entêtes) Aide mémoire HTTP (structure des entêtes) Fabrice HARROUET École Nationale d Ingénieurs de Brest http://www.enib.fr/~harrouet/ enib 1/10 Structure générale d une requête Requête HTTP méthode ressource

Plus en détail

Protection des protocoles www.ofppt.info

Protection des protocoles www.ofppt.info ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail Protection des protocoles DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire 1. Introduction... 2

Plus en détail

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion HTTP IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin HTTP Introduction et architecture Messages Authentification Conclusion 1 HTTP Introduction et architecture Hypertext Transfert Protocol URI (Uniform

Plus en détail

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ...

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ... HTTP 1.1 Place de http dans le modèle osi : HyperText Transfer Protocol...... TCP IP...... HTTP est un protocole «sans état» : chaque page WEB est transmise dans une connexion séparée (sauf pour les connections

Plus en détail

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

Plus en détail

Manuel d intégration API SOAP SMS ALLMYSMS.COM

Manuel d intégration API SOAP SMS ALLMYSMS.COM Manuel d intégration API SOAP SMS ALLMYSMS.COM 26/02/2014 TABLE DES MATIERES OBJECTIF DU DOCUMENT... 3 LE PROTOCOLE SOAP... 3 ENVOI DE REQUETES SOAP A LA PLATEFORME ALLMYSMS.COM... 3 BACKOFFICE SMS...

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 Version 1.0.5 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test? Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC Qui contacter pour commencer la mise en place d une configuration de test? CyberMUT Paiement - Paiement CIC Commerce Electronique mailto:centrecom@e-i.com

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

Dans l'épisode précédent

Dans l'épisode précédent Dans l'épisode précédent 2 Le réseau SERVEURS POSTE CLIENT POSTE CLIENT wifi SERVEURS POSTE CLIENT switch Borne Wifi SERVEURS routeur POSTE CLIENT? SERVEURS SERVEURS SERVEURS POSTE CLIENT SERVEURS 3 Les

Plus en détail

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5 Le service FTP 1) Présentation du protocole FTP Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l échange informatique de fichiers sur

Plus en détail

Étude de l application DNS (Domain Name System)

Étude de l application DNS (Domain Name System) Étude de l application DNS (Domain Name System) RICM 4 - Option Réseaux Pascal Sicard Introduction Le but de ce TP est de comprendre l utilisation et le fonctionnement de l application réseau DNS (Domain

Plus en détail

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x SQUID P r o x y L i b r e p o u r U n i x e t L i n u x 1. P r é s e n t a t i o n : SQUID est un proxy (serveur mandataire en français) cache sous linux. De ce fait il permet de partager un accès Internet

Plus en détail

Installation / Sauvegarde Restauration / Mise à jour

Installation / Sauvegarde Restauration / Mise à jour Installation / Sauvegarde Restauration / Mise à jour SPIP version 1.8.x Serveur (Linux) Jean Sébastien BARBOTEU dev.jsb@laposte.net Introduction Nous allons aborder tous les aspects techniques liés à la

Plus en détail

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE

Plus en détail

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1. Plateforme PAYZEN Intégration du module de paiement pour la plateforme Magento version 1.3.x.x Paiement en plusieurs fois Version 1.4a Guide d intégration du module de paiement Multiple Magento 1/24 SUIVI,

Plus en détail

Cours CCNA 1. Exercices

Cours CCNA 1. Exercices Cours CCNA 1 TD3 Exercices Exercice 1 Enumérez les sept étapes du processus consistant à convertir les communications de l utilisateur en données. 1. L utilisateur entre les données via une interface matérielle.

Plus en détail

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement

Plus en détail

Services Réseaux - Couche Application. TODARO Cédric

Services Réseaux - Couche Application. TODARO Cédric Services Réseaux - Couche Application TODARO Cédric 1 TABLE DES MATIÈRES Table des matières 1 Protocoles de gestion de réseaux 3 1.1 DHCP (port 67/68)....................................... 3 1.2 DNS (port

Plus en détail

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN - @salemioche

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN - @salemioche Gestion centralisée d un réseau de sites discrets Nicolas JEAN - @salemioche SEO / Technique,utilisation SEO Technique / Utilisation Intérêt du réseau Centralisé Discrétion Simplicité d utilisation Caractéristique

Plus en détail

Bind, le serveur de noms sous Linux

Bind, le serveur de noms sous Linux Bind, le serveur de noms sous Linux 1. Principes de fonctionnement d'un serveur de noms La résolution des noms d'hôtes sur les réseaux tcp/ip est fondée sur le principe d'une répartition de la base des

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Couche application. La couche application est la plus élevée du modèle de référence.

Couche application. La couche application est la plus élevée du modèle de référence. Couche application La couche application est la plus élevée du modèle de référence. Elle est la source et la destination finale de toutes les données à transporter. Couche application La couche application

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Préparation d un serveur Apache pour Zend Framework

Préparation d un serveur Apache pour Zend Framework Préparation d un serveur Apache pour Zend Framework Jacques THOORENS 30 novembre 2010 Résumé Cette petite introduction explique comment paramétrer son serveur Apache personnel pour en faire une machine

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

Module http MMS AllMySMS.com Manuel d intégration

Module http MMS AllMySMS.com Manuel d intégration Module http MMS AllMySMS.com Manuel d intégration Objectif du document... 3 1 Envoi de MMS par requête http... 4 1.1 Format de la requête utilisée... 4 1.2 Arborescence et explication des balises du flux

Plus en détail

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Tutoriel Création d une source Cydia et compilation des packages sous Linux Tutoriel Création d une source Cydia et compilation des packages sous Linux 1. Pré-requis 1. Quelques connaissances sous Linux 2. Avoir à disposition un Serveur FTP pour héberger votre source 3. Un thème

Plus en détail

0.1 Mail & News : Thunderbird

0.1 Mail & News : Thunderbird 0.1 Mail & News : Thunderbird 1 0.1 Mail & News : Thunderbird Thunderbird est le lecteur de mail, de newsgroup et de flux RSS de la fondation Mozilla. Il est disponible pour Linux (en version gtk2), pour

Plus en détail

Quelques protocoles et outils réseaux

Quelques protocoles et outils réseaux Quelques protocoles et outils réseaux 1 Adresses MAC et IP ifconfig Chaque point de connexion d un réseau est identifié par une adresse MAC (physique) et une adresse IP (logique). Pour l adresse MAC, il

Plus en détail

Protocoles Applicatifs

Protocoles Applicatifs Programmation Réseau Protocoles Applicatifs Jean-Baptiste.Yunes@liafa.jussieu.fr UFR Informatique 2011-2012 Protocoles Protocoles applicatifs on appelle protocole applicatif ou protocole d application

Plus en détail

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST Amosse EDOUARD, Doctorant Organisation Cours Magistral 24/11/2014 26/11/2014 01/12/2014 Travaux Dirigés 26/11/2014 28/11/2014 01/11/2014 08/11/2014 Evaluation

Plus en détail

Introduction à HTTP. Chapitre 3 3.1 HTTP 0.9

Introduction à HTTP. Chapitre 3 3.1 HTTP 0.9 Chapitre 3 Introduction à HTTP L HyperText Transfer Protocol, plus connu sous l abréviation HTTP (littéralement protocole de transfert hypertexte ) est un protocole de communication client-serveur développé

Plus en détail

Formulaire pour envoyer un mail

Formulaire pour envoyer un mail Formulaire pour envoyer un mail AVERTISSEMENT : Ce tuto est une compilation de plusieurs sources trouvées sur internet, dont les références sont données à la fin de cet article. Le but de ce tutoriel n'est

Plus en détail

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing Stéphane Bortzmeyer Première rédaction de cet article le 14 juin 2014 Date de publication du

Plus en détail

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

Configuration du nouveau Bureau Virtuel (BV) collaboratif de Lyon I

Configuration du nouveau Bureau Virtuel (BV) collaboratif de Lyon I Configuration du nouveau Bureau Virtuel (BV) collaboratif de Lyon I Date : 13 octobre 2009 / Auteur : David ROMEUF / Version : 1.1 / Diffusion : Utilisateurs Table des matières Cas 1 : un poste MS-Windows

Plus en détail

Mise en place d un serveur Proxy sous Ubuntu / Debian

Mise en place d un serveur Proxy sous Ubuntu / Debian BTS INFORMATIQUE DE GESTION Option Administrateur Réseaux Benoît VERRON Activité n 1 Mise en place d un serveur Proxy sous Ubuntu / Debian Présentation d un Proxy Un proxy (serveur mandataire) est un serveur

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

Les services usuels de l Internet

Les services usuels de l Internet Les services usuels de l Internet Services principaux (applications) disponibles sur l Internet Courrier électronique (mail) - protocole SMTP (Simple Mail Transfer Protocol) inclut maintenant tous types

Plus en détail

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données Activité sur Meteor Annexe 1 : notion de client-serveur et notion de base de données Notion de client-serveur Que se passe-t-il lorsque vous tapez dans la barre d'adresse de votre navigateur «http://www.google.fr»?

Plus en détail

Bon ben voilà c est fait!

Bon ben voilà c est fait! Bon ben voilà c est fait! Au programme : - Exploration de l arborescence et informations systèmes - Action sur les dossiers et fichiers - Gestion des autorisations - Conversion pdf en text - Connexion

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

DNS : Domaine Name System

DNS : Domaine Name System DNS : Domaine Name System - Les machines utilisent les adresses IP pour communiquer. - Les humaines ont du mal à manipuler et à retenir des adresses IP. Ils retiennent plus facilement des noms de machines.

Plus en détail

Supervision de réseau

Supervision de réseau Supervision de réseau Master Informatique première année Olivier Flauzac olivier.flauzac@univ-reims.fr Olivier Flauzac (URCA) Supervision de réseau olivier.flauzac@univ-reims.fr 1 / 58 Plan 1 Supervision

Plus en détail

Guide administrateur AMSP

Guide administrateur AMSP Guide administrateur AMSP Alinto Version Auteur Date Remarque V1.0 Nicolas Polin 19/10/2015 - Lyon Paris Köln Madrid Table des matières 1. Introduction... 3 2. Se connecter à Factory... 3 3. Gestion des

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

INF8007 Langages de script

INF8007 Langages de script INF8007 Langages de script Sockets et serveur 1/18 INF8007 Langages de script Sockets et serveur Michel Desmarais Génie informatique et génie logiciel École Polytechnique de Montréal Hiver, 2014 INF8007

Plus en détail

A.P.I. Kuka Manuel de l utilisateur Version 0.0.5

A.P.I. Kuka Manuel de l utilisateur Version 0.0.5 A.P.I. Kuka Manuel de l utilisateur Version 0.0.5 Paul Chavent Kubrick 8 septembre 2003 1 kuka api 0.0.5 : Manuel de l utilisateur Table des matières 1 Utilisation sur le robot (serveur) 3 1.1 Installation............................................

Plus en détail

Master d'informatique 1ère année Réseaux et protocoles

Master d'informatique 1ère année Réseaux et protocoles Master d'informatique 1ère année Réseaux et protocoles DNS Bureau S3-203 mailto://alexis.lechervy@unicaen.fr Domain Name System Le fonctionnement d'un réseau IP est basé sur l'adressage et le routage.

Plus en détail

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min) TP n 2 : Installation et administration du serveur ProFTP Objectifs du TP Comprendre le fonctionnement du protocole FTP Installation et compilation d un paquet source Configuration, lancement et administration

Plus en détail

Guide d installation de SugarCRM Open Source version 4.5.1

Guide d installation de SugarCRM Open Source version 4.5.1 Guide d installation de SugarCRM Open Source version 4.5.1 Version 1.0.2 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans notification. Disclaimer / Responsabilité

Plus en détail

Linux LTE 2 - ISSBA. Année universitaire 2007-2008. Linux Réseau et Archivage. Jean-Michel RICHER Faculté des Sciences, H206 1

Linux LTE 2 - ISSBA. Année universitaire 2007-2008. Linux Réseau et Archivage. Jean-Michel RICHER Faculté des Sciences, H206 1 Linux LTE 2 - ISSBA Année universitaire 2007-2008 Linux Réseau et Archivage Jean-Michel RICHER Faculté des Sciences, H206 1 Plan L identification Réseau Qu est ce qu un adresse IP Classes de réseau Les

Plus en détail

Attaques applicatives

Attaques applicatives Attaques applicatives Attaques applicatives Exploitation d une mauvaise programmation des applications Ne touche pas le serveur lui-même mais son utilisation/ configuration Surtout populaire pour les sites

Plus en détail

DOMAIN NAME SYSTEM. CAILLET Mélanie. Tutoriel sur le DNS. Session 2012-2014 Option SISR

DOMAIN NAME SYSTEM. CAILLET Mélanie. Tutoriel sur le DNS. Session 2012-2014 Option SISR DOMAIN NAME SYSTEM Tutoriel sur le DNS CAILLET Mélanie Session 2012-2014 Option SISR Table des matières DOMAIN NAME SYSTEM 2013 I. DNS Statique sous Linux (Ubuntu 12.04 LTS)... 3 A. DNS Principal... 3

Plus en détail

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER Internets Informatique de l Internet: le(s) Internet(s) Joël Quinqueton Dépt MIAp, UFR IV UPV Université Montpellier III RENATER, R3LR Services Internet Protocoles Web Sécurité Composantes de l internet

Plus en détail

Serveur FTP. 20 décembre. Windows Server 2008R2

Serveur FTP. 20 décembre. Windows Server 2008R2 Serveur FTP 20 décembre 2012 Dans ce document vous trouverez une explication détaillé étapes par étapes de l installation du serveur FTP sous Windows Server 2008R2, cette présentation peut être utilisée

Plus en détail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL Au cours de ce TP, vous allez installer un serveur de courrier sur un réseau local. Les étapes par lesquelles vous allez passer sont les suivantes

Plus en détail

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR GUIDE D INSTALLATION DE L APPLICATION GECOL SUR SERVEUR WINDOWS INTRODUCTION Le guide d installation qui va suivre va tenter d amener de la simplicité et de centraliser toutes les informations nécessaires

Plus en détail

MANUEL D INSTALLATION D UN PROXY

MANUEL D INSTALLATION D UN PROXY MANUEL D INSTALLATION D UN PROXY Squid, SquidGuard, Dansguardian Dans ce guide on va détailler l installation et la configuration d une solution proxy antivirale en utilisant les outils ; squid, dansguardian,

Plus en détail

18 TCP Les protocoles de domaines d applications

18 TCP Les protocoles de domaines d applications 18 TCP Les protocoles de domaines d applications Objectifs 18.1 Introduction Connaître les différentes catégories d applications et de protocoles de domaines d applications. Connaître les principaux protocoles

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn

Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn maxime.boissonneault@calculquebec.ca U. Laval - Mars 2013 1 2 Plan de la présentation 1.Accéder à une grappe 2.Fichiers

Plus en détail

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Failles XSS : Principes, Catégories Démonstrations, Contre mesures HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Séminaire 15 ans HSC Failles XSS : Principes, Catégories Démonstrations,

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2) Le langage PHP (2) Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation

Plus en détail

Manuel d'installation

Manuel d'installation CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001

Plus en détail

Squid. Olivier Aubert 1/19

Squid. Olivier Aubert 1/19 Squid Olivier Aubert 1/19 Liens http://www.squid-cache.org/ http://squid.visolve.com/ 2/19 Principe Squid : cache web logiciel Fonctionne sur un OS classique (Linux, BSD, Solaris, Windows,...) Logiciel

Plus en détail

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre info@academielibre.fr

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre info@academielibre.fr Cours Linux Cours en ligne Administrateur Systèmes Linux Académie Libre info@academielibre.fr Programme général du cours Linux MODULE 1 - Fondamentaux Introduction à Linux La procédure de Login et Logout

Plus en détail

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

TP réseaux 4 : Installation et configuration d'un serveur Web Apache TP réseaux 4 : Installation et configuration d'un serveur Web Apache Objectifs Installer, configurer, lancer et administrer le serveur Web Apache sous Linux Données de base machine fonctionnant sous Linux

Plus en détail

C.M. 1 & 2 : Prise en main de Linux

C.M. 1 & 2 : Prise en main de Linux Grégory Bonnet gregory.bonnet@unicaen.fr GREYC Université Caen Basse Normandie Diaporama original : Jean-Philippe Métivier - Boris Lesner But de cet enseignement 1 - Apprendre à manipuler un système Unix/Linux

Plus en détail

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé) Introduction PHP = Personal Home Pages ou PHP Hypertext Preprocessor Langage de script interprété (non compilé) Plan Avantages Fonctionnement interne Bases du langage Formulaires Envoi d un email Avantages

Plus en détail

Développement Web. Les protocoles

Développement Web. Les protocoles Développement Web NFA016 2007-2008 Les protocoles CNAM le 28 octobre 2007 O. Pons S. Rosmorduc M. Simonot 1 / 27 Notion de protocole Un réseau : ensemble de machines reliées entre elles. Communiquer :

Plus en détail

Les différentes méthodes pour se connecter

Les différentes méthodes pour se connecter Les différentes méthodes pour se connecter Il y a plusieurs méthodes pour se connecter à l environnement vsphere 4 : en connexion locale sur le serveur ESX ; avec vsphere Client pour une connexion sur

Plus en détail

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward PHP CLÉS EN MAIN 76 scripts efficaces pour enrichir vos sites web par William Steinmetz et Brian Ward TABLE DES MATIÈRES INTRODUCTION 1 1 TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR LES SCRIPTS PHP

Plus en détail

Service FTP. Stéphane Gill. Stephane.Gill@CollegeAhuntsic.qc.ca. Introduction 2

Service FTP. Stéphane Gill. Stephane.Gill@CollegeAhuntsic.qc.ca. Introduction 2 Stéphane Gill Stephane.Gill@CollegeAhuntsic.qc.ca Table des matières Introduction 2 Protocole ftp 2 Utilisation du client ftp 2 Installer un serveur vsftp 4 Configurer le service ftp 5 Le fichier /etc/services

Plus en détail

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim 01/03/2013 Le rôle de Serveur Web (IIS) dans Windows Server 2008 R2 vous permet de partager des informations avec des utilisateurs sur Internet, sur un intranet ou un extranet. Windows Server 2008 R2 met

Plus en détail

Dans l'article précédent, vous avez appris

Dans l'article précédent, vous avez appris Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez

Plus en détail

PPE Installation d un serveur FTP

PPE Installation d un serveur FTP Introduction : Tout au long de ce tutorial nous allons créer un serveur FTP, commençons tout d abord à voir ce qu est un serveur FTP. File Transfer Protocol (protocole de transfert de fichiers), ou FTP,

Plus en détail

Installation ou mise à jour du logiciel système Fiery

Installation ou mise à jour du logiciel système Fiery Installation ou mise à jour du logiciel système Fiery Le présent document explique comment installer ou mettre à jour le logiciel système sur le Fiery Network Controller pour DocuColor 240/250. REMARQUE

Plus en détail

DNS ( DOMAIN NAME SYSTEM)

DNS ( DOMAIN NAME SYSTEM) DNS ( DOMAIN NAME SYSTEM) Principe de la résolution de Noms Certaines applications nécessitent pour communiquer d utiliser les noms de Machines : Sony alors que d autres utiliseront des noms Internet ou

Plus en détail

Configuration d un firewall pour sécuriser un serveur WEB

Configuration d un firewall pour sécuriser un serveur WEB Configuration d un firewall pour sécuriser un serveur WEB Contexte : Dans le cadre de la mise en place d un serveur intranet, il est demandé de sécuriser son accès et de le personnaliser en fonction de

Plus en détail

Le serveur HTTPd WASD. Jean-François Piéronne

Le serveur HTTPd WASD. Jean-François Piéronne Le serveur HTTPd WASD Jean-François Piéronne Sommaire Caractéristiques Architecture générale Performances Intégration dans OpenVMS Caractéristiques Implémentation complète HTTP/1.0 Méthodes "GET", "HEAD",

Plus en détail

Logiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Logiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003. Ce document est libre de droit, merci simplement de respecter son auteur. Toutes remarques ou commentaires seront les bienvenues. ATTENTION : La mise à jour par script entre GLPI et Active Directory ne

Plus en détail

Chapitre 1 Windows Server 2008 11

Chapitre 1 Windows Server 2008 11 Chapitre 1 Windows Server 2008 11 1.1. Les fondations du système... 15 1.2. La virtualisation... 16 1.3. La sécurité... 18 1.4. Le Web... 20 1.5. Fonctionnalité disponible dans Windows Server 2008... 21

Plus en détail

TP4 : Firewall IPTABLES

TP4 : Firewall IPTABLES Module Sécurité TP4 : Firewall IPTABLES Ala Rezmerita François Lesueur Le TP donnera lieu à la rédaction d un petit fichier texte contenant votre nom, les réponses aux questions ainsi que d éventuels résultats

Plus en détail