Vous êtes sur la page 1sur 20

Serveur DHCP - Configuration incorrecte -

>problèmes de
Plan  : communication réseaux
1. Introduction - Surcharge administrative
2. Définition du serveur DHCP sur les réseaux dont les
ordinateurs sont souvent
3. comparaison entre la d’élacés
configuration manuelle et configuration dynamique:
dynamique
- Adresses IP fournies
4. Définition du paramètres TCP/IP automatiquement
5. le fonctionnement du DHCP - Les clients utilisent toujours des
informations de configuration
6. Comment vérifier la durée de correctes
votre bail DHCP? - Configuration des clients
7. Comment modifier la période de automatiquement mise a jour ->
bail DHCP ? refléter les modifications de
structure réseau
8. comment renouveler votre bail Définition du paramètres TCP/IP
DHCP sur Windows ?
Adresse IP :Une adresse IP
Définition du serveur DHCP (Internet Protocol) est un numéro
Définition DHCP :Le d'identification qui est attribué de
protocole DHCP ( Dynamic Host façon permanente ou provisoire à
Configuration Protocol ) est chaque périphérique relié à un
un protocole de gestion de réseau informatique qui utilise
réseau utilisé sur les réseaux IP l'Internet Protocol .
( Internet Protocol ) pour attribuer Masque sous-réseau : Un sous-
automatiquement des adresses réseau est une subdivision logique
IP et d'autres paramètres de d'un réseau de taille plus
communication aux périphériques importante. Le masque de sous-
connectés au réseau à l'aide réseau permet de distinguer la
d'une architecture client-serveur  partie de l'adresse commune à
comparaison entre la tous les appareils du sous-réseau
configuration manuelle et et celle qui varie d'un appareil à
dynamique l'autre. Un sous-réseau correspond
typiquement à un réseau
configuration statique:
local sous-jacent.
- Adresse IP entrées
manuellement
- Risque d’erreurs (adresse DNS :Le Domain Name
incorrecte ou invalide ) System ou DNS est un
service informatique distribué
utilisé qui traduit les noms de
domaine Internet en adresse IP ou diffusion locale, si un serveur DHCP est
autres enregistrements. configuré sur le réseau local, il recevra
également le message. Si plusieurs
Adresse MAC :Une adresse
serveurs DHCP sont configurés sur le
MAC (de l'anglais Media Access
réseau local, ils recevront tous
Control), parfois nommée adresse
le message DHCPDISCOVER .
physique, est un identifiant
physique stocké dans une carte Si plusieurs serveurs DHCP sont
réseau ou une interface disponibles, selon leur configuration, l'un
réseau similaire. d'entre eux ou tous peuvent répondre
passerelle :une passerelle  est le au message DHCPDISCOVER .  En réponse
nom générique d'un dispositif au message DHCPDISCOVER , un serveur
permettant de relier deux réseaux DHCP envoie un message DHCPOFFER au
informatiques de types différents . client.
Le fonctionnement du DHCP : Comme le client n'a pas d'adresse IP, le
serveur DHCP ne peut pas envoyer le
message DHCPOFFER directement au
DHCPDISCOVER :
client. Pour cette raison, le serveur définit
l'appareil génère un message spécial
l'adresse de destination sur
appelé message DHCPDISCOVER et diffuse
255.255.255.255 . En d'autres termes, le
ce message sur le segment LAN local.
serveur diffuse également le
Pour diffuser les messages message DHCPOFFER sur le réseau local.
DHCPDISCOVER, l’appareil utilise
Le message DHCPOFFER contient des
respectivement 0.0.0.0 et
informations spécifiques au protocole et
255.255.255.255 .
une configuration IP. Une configuration IP
Le 0.0.0.0 et 255.255.255.2555 sont deux comprend généralement les informations
adresses spéciales. Tout appareil, qu'il ait importantes suivantes : l'adresse IP du
ou non une configuration IP valide, peut client, le masque de sous-réseau de
utiliser ces adresses pour envoyer des l'adresse IP proposée, l'adresse IP de la
messages de diffusion locaux. passerelle par défaut, le nom de domaine
DNS, l'adresse ou les adresses du serveur
A partir de ces adresses, le 0.0.0.0 est
DNS et le serveur TFTP. adresse ou
utilisé comme adresse source. Si un
adresses.
appareil n'a pas l'adresse source, il peut
utiliser cette adresse pour envoyer des Le message DHCPOFFER contient
messages de diffusion. 255.255.255.2555 également d'autres informations
est l'adresse de diffusion locale. Tout spécifiques au protocole telles que
message envoyé sur cette adresse est reçu la durée du bail et l'ID client 
par tous les hôtes du réseau local.

Requête DHCP :
OFFRE DHCP: Tous les hôtes du réseau local reçoivent
Étant donné que le client envoie le le message DHCPOFFER . L'hôte qui a
message DHCPDISCOVER à l'adresse de envoyé le
message DHCPDISCOVER accepte le hôtes utilisent le champ ID client du
message DHCPOFFER . À l'exception de message DHCPOFFER pour savoir si le
l'hôte d'origine, tous les autres hôtes message leur est destiné ou non, les
ignorent DHCPOFFER . serveurs DHCP utilisent le champ ID
transaction du
Le message DHCPDISCOVER contient
message DHCPREQUEST pour savoir si
l'adresse MAC de l'hôte. Lorsqu'un
leur offre a été acceptée ou non.
serveur DHCP diffuse un
message DHCPOFFER , il inclut également DHCPACK :
l'adresse MAC de l'hôte dans un Lorsque le serveur DHCP reçoit un
paramètre appelé ID client . Lorsque les message DHCPREQUEST du client, le
hôtes reçoivent le message DHCPOFFER , processus de configuration entre dans sa
ils vérifient le champ ID client dans le phase finale. Dans cette étape, le serveur
message. Si un hôte voit son adresse MAC envoie un message DHCPACK au client.
dans le champ ID client, l'hôte sait que le
Le message DHCPACK est un accusé de
message lui est destiné. Si un hôte voit
réception au client indiquant que le
l'adresse MAC d'un autre hôte dans le
serveur DHCP a reçu le
champ ID client, l'hôte sait que le message
message DHCPREQUEST du client, et le
ne lui est pas destiné.
client peut utiliser la configuration IP
Selon le nombre de serveurs DHCP, un offerte.
hôte peut recevoir plusieurs
Dans certains cas, le serveur peut
messages DHCPOFFER . Si un hôte reçoit
également répondre par un
plusieurs messages DHCPOFFER , il message DHCPNACK . Le
n'accepte qu'un seul message et indique message DHCPNACK indique au client que
au serveur correspondant avec un l'offre n'est plus valide et que le client doit
message DHCPREQUEST qu'il souhaite redemander une configuration IP. En règle
utiliser la configuration IP proposée. générale, cela se produit lorsque le client
prend trop de temps pour répondre avec
Si un seul serveur DHCP est disponible et
un message DHCPREQUEST après avoir
que la configuration IP fournie entre en
reçu un message DHCPOFFER du
conflit avec la configuration du client, le serveur. Dans un tel cas, le client peut
client peut répondre par un faire une nouvelle demande pour une
message DHCPDECLINE . Dans cette autre configuration IP.
situation, le serveur DHCP propose une
autre configuration IP. Comment vérifier la durée de votre bail
DHCP?
Lorsque les serveurs DHCP reçoivent le
message DHCPREQUEST , outre le serveur  Sur windows :
dont l'offre a été acceptée, tous les autres La durée du bail DHCP :
serveurs retirent toute offre qu'ils auraient Une adresse IP attribuée par DHCP n'est
pu faire au client et renvoient l'adresse pas permanente et expire dans environ 24
offerte au pool d'adresses disponibles. heures. C'est ce que l'on appelle une
durée de bail DHCP.
Le message DHCPREQUEST contient un
champ ID de transaction . Tout comme les  Vérification du bail DHCP :
1. Rechercher Invite de commandes . 2. cliquez dessus avec le bouton droit
2. cliquez dessus avec le bouton droit et et choisissez Exécuter en tant
choisissez Exécuter en tant qu'administrateur .
qu'administrateur .
3. appuie sur le les fenêtres + R  .
3. appuie sur le les fenêtres + R  .
Tapez cmd  Tapez cmd 
4. appuie sur le les fenêtres + X  , puis 4. appuie sur le les fenêtres + X  ,
sélectionnez Invite de commandes puis sélectionnez Invite de
(Admin) . commandes (Admin) .
5. cliquez sur Oui pour permettre à 5. cliquez sur Oui pour permettre à
l'application de se lancer avec des l'application de se lancer avec des
autorisations administratives
autorisations administratives
6. tapez la commande : ipconfig / all
vous voyiez le Bail obtenu et Le bail 6. Tapez la commande : ipconfig /
expire lignes . release.
7. Tapez la commande : ipconfig /
Comment modifier la période de bail renew.
DHCP ?
 La durée de votre bail doit être
 Sur windows :
renouvelée après avoir effectué
1. Ouvrez un navigateur Web .Tapez ces étapes. Cela appliquera la
192.168.1.1 ou alors 192.168.0.1  . nouvelle période que vous avez
2. Une fois la page du routeur définie
chargée, vous serez invité à vous • A la moitié du bail, le client
connecter avec les informations demande le renouvellement
d'identification correctes. (prolongation de son bail), il n’y
3. Une fois connecté, accédez aura alors que les trames
à Paramètres et recherchez DHCPREQUEST et DHCPACK qui
le Paramètres réseau / LAN ou seront échangées.
alors Paramètres DHCP section • Si au bout des 7/8 du bail pas de
4. Vous pouvez modifier la valeur à réponse du serveur ( pas de
n'importe quelle période de temps DHCPACK) alors le client essayera
dans les limites de vos routeurs. de joindre un serveur DHCP
5. Enregistrez vos paramètres avant quelconque sur le réseau.
de quitter la page du routeur.
Après avoir modifié la durée de • Lors du renouvellement, le client
votre bail DHCP, la nouvelle heure utilise l’adresse IP donnée
sera appliquée à tous les précédemment par le serveur
périphériques connectés au Encapsulation d’un
réseau. message DHCP
Comment renouveler votre bail DHCP L'échange qui se fais entre le
sur Windows ? client et le serveur DHCP se fait
dans un message DHCP
 Sur windows :
donc se dernier est encapsuler
1. Rechercher Invite de commandes .
dans un datagramme UDP et l
encapsuler dans un paquet IP . Si
cet échange se fera a l'intérieur  Adresse IP du client: adresse IP
d'un réseau local le massage DHCP du client, telle que fournie par le
est encapsuler dans un trame de serveur. Ce champ est initialisé par
type Ethernet. le serveur lorsque celui
Le message DHCP est un
ensemble du mot sont repartis sur  Adresses IP du serveur: adresse
IP du serveur continuant le
des champs.
processus d'initialisation du poste
de travail, soit le chargement de
l'image système avec TFTP.
 Adresse IP de la passerelle:
adresse IP de l'agent relais à
utiliser.
 Adresse matérielle du client:
adresse de l'interface matérielle du
client.
 Nom d’hôte du serveur: nom de
domaine du serveur (optionnel),
terminé par un null.
 OPI (type d’opération ou de
 Nom du fichier de démarrage
message) :En cas de requêtes du
(file): chemin d'accès complet du
client, la valeur de ce champ est fichier de chargement de l'image
définie sur 1 (pour BOOTREQUEST) système (optionnel), terminé par un
et sur 2 s’il s’agit d’une réponse du nul .
serveur   options  : Paramètres optionnels
 Htype( la longueur de l’adresse utilisés lors de la négociation entre
matérielle) :pour spécifier le type le client et le serveur.
d’adresse physique dans le cas
d’une adresse mac il prend la
valeur 1 Serveur FTP
 hlen  : longueur de l'adresse
physique.
 Serveur: c'est un ordinateur qui
 hops  : nombre d'agents relais exécute des opérations suivant les
visités pour traiter le message. Le requêtes effectuées par un autre
client DHCP assigne la valeur 0 à ce ordinateur appelé « client »
champ.  ftp :Dans le monde informatique,
 id session: identifiant de la on entend souvent le terme FTP. Le
transaction. Permet au client de sigle FTP signifie File Transfert
reconnaître les réponses à ses Protocol (Protocole de transfert de
requêtes,. fichiers).Il s'agit donc d'un
 secs  : nombre de secondes depuis protocole utilisé pour transférer
le début du processus de des fichiers d'un ordinateur à un
configuration. serveur ou d'un serveur à un
 flags  : ce champ n'est pas utilisé ordinateur...
dans BOOTP.
 Adresse IP du client : adresse IP  Serveur FTP :est un protocole de
du client. Ce champ est initialisé communication destiné au partage
par le client seulement de fichiers sur un réseau TCP/IP. Il
permet, depuis un ordinateur, de systemctl status vsftpd : pour verifier que
copier des fichiers vers un autre le serveur fonctionnes bien et
ordinateur du réseau, ou encore correctement.
de supprimer ou de modifier des
fichiers sur cet ordinateur  Filezilla serveur 

 Canal :
Résumé : Langage C#
Canal de commande est utilisé pour la
transmission des commandes et la
réception des réponses
Canal de données est utilisé pour Plan :
l’échange des données
1) Introduction
 Mode : - Histoire
Mode actif :c’est le client ftp qui - Nom du langage
détermine sur quel port se feront les
échanges des fichiers. Cette technique est 2) Installation
la plus ancienne et pose bien souvent des - Logiciel & coder en ligne
problèmes à cause du pare-feu.
- Syntaxe
Mode passif : c’est le serveur ftp qui qui
détermine sur quel port se feront les 3) Notions de bases
échanges des fichiers. Cette technique est -Variables
recommandée aujourd’hui
- Constante
 Les commandes :
-User input & Output
sudo su : est une commande permettant
d'exécuter un interpréteur de commandes -Les opérateurs
en changeant d'identifiant de groupe et de -Remarques
User identifier.
4) Conditions & boucles
sudo apt-get install vsftpd : Pour installer - If / if else / switch
le pacquage de ftp s’appelle vsftpd. - While / for
nano /etc/vsftpd.conf : pour entrer a son
fichier de configuration. 5) Les tableaux

nano /etc/vsftpd.chroot_list : Pour cree


un fichier qui s’appelle
vsftpd .chroot_liste.
1. Intro :
systemctl restart vsftpd : Pour redemarer
le serveur ftp. C# (C Sharp ) est
un langage de programmation orientée
objet, commercialisé par Microsoft depuis
2002 et destiné à développer sur la
plateforme Microsoft .NET. integrated
rk 3.5
queries)
Il est dérivé du C++ et très proche
du Java dont il reprend la syntaxe générale
ainsi que les concepts, y ajoutant des .NET
201 types
notions telles que la surcharge des 4.0 framewo
0 dynamiques
opérateurs, les indexeurs et les délégués. rk 4.0

Le C# vous permet de créer tous types


d’application performantes et robustes, il .NET méthodes
201
est utilisé notamment pour développer 5.0 framewo asynchrone
2
des jeux vidéo, des applications bureau rk 4.5 s
mobile, des applications web sur la
plateforme ASP.NET. C’est un langage
.NET
indicatif par excellence ! 201 version
6.0 framewo
5 pour Linux
Histoire : rk 4.6

C'est en septembre 2002 que


la plateforme .NET et C# sont présentés au .NET Tuples,
201
public. C# devient le langage de facto de 7.0 framewo fonctions
6
cette plateforme, il a par ailleurs été utilisé rk >= 4.5 locales
pour implémenter une partie de la
plateforme .NET.
.NET
Membre
Versions : standard
ReadOnly,
201 >=2.1
8.0 opérateur
9 et .NET
d’assignatio
Principal Core
Ann Versi Biblioth n de fusion
changeme >=3.0
ée on èque
nt

Nom du langage :
.NET
200 framewo
1.0
2 rk 1.0 et
1.1 Le standard ECMA 334 et l'ISO 23270
définissent le nom du langage comme
le caractère Unicode 0043 (C
généricité aj majuscule) suivi du caractère 0023 (#).
.NET Il est prononcé « C Sharp » et non « C
200 outée à C#
2.0 framewo
5 et au hash », « Sharp » désignant en effet le
rk 2.0
framework symbole musical ♯ mais # étant
nécessaire pour un accès facile depuis
un clavier d'ordinateur qui propose le
200 3.0 .NET LINQ (Lang croisillon (« hash ») à la place.
8 framewo uage Le nom "C#" est inspiré de la notation
musicale où un dièse indique que la
note écrite doit être augmentée d'un
demi-ton. Ceci est similaire au nom de
langage de C++, où "++" indique
qu'une variable doit être incrémentée
de 1 après avoir été évaluée. Le
symbole # ressemble également à une
ligature de quatre symboles "+" (dans
une grille deux par deux), ce qui
implique que le langage est un
incrément de C++.

C++ Ligne 1 : using System signifie


++ que nous pouvons utiliser les
classes de l'espace
de Systemnoms.

Ligne 2 : une ligne vide. C#


2. L’installation :
ignore les espaces
les outils pour coder en C# : blancs. Cependant, plusieurs
- Le moyen le plus simple de démarrer lignes rendent le code plus lisible.
avec C# consiste à utiliser un IDE, il utilisé
Ligne 3 : namespace est utilisée
pour éditer et compiler le code.
pour organiser votre code, et c'est
Les applications écrites en C# utilisent un conteneur pour les classes et
le .NET Framework, il est donc logique autres espaces de noms.
d'utiliser Visual Studio, car le programme,
le Framework et le langage sont tous créés Ligne 4 : Les accolades {}
par Microsoft. marquent le début et la fin d'un
bloc de code.

Ligne 5 : class est un conteneur


Coder en ligne : https://dotnetfiddle.net
de données et de méthodes, qui
apporte des fonctionnalités à
votre programme. Chaque ligne
Syntaxe C# de code qui s'exécute en C# doit
être à l'intérieur d'une
classe. Dans notre exemple, nous
avons nommé la classe Program.

Ligne 7 : Une autre chose qui


apparaît toujours dans un
programme C#, c'est la Main
méthode. Tout code à l'intérieur
de ses accolades {} sera
exécuté. Vous n'avez pas besoin
de comprendre les mots-clés
avant et après Main. Vous Ne peut pas contenir de symboles
apprendrez à les connaître petit à (sauf le trait de soulignement).
petit en lisant ce tutoriel.
Constante :
Ligne 9 : Console est une classe Si vous ne voulez pas que d’autres
de l'espace de Systemnoms, qui a écrasent les valeurs existantes vous
une WriteLine() méthode utilisée
pouvez ajouter le mot clé const .
pour sortir/imprimer du
texte. Dans notre exemple, il - Exemple :
affichera "Hello World !".
const Double PI = 3.14 ;
- Remarque :

3. Notions de base : Vous ne pouvez pas déclarer une


Variables : variable constante sans affecter la
valeur. Si vous le faites, une erreur se
- Pour déclarer une variable, vous
produira : un champ const nécessite
spécifiez le type de données et le nom
qu'une valeur soit fournie .
de la variable suivis d'une valeur.
Sortie :
- Syntaxe :
Pour générer des valeurs ou imprimer
Type nom_variable = valeur ;
du texte en C# , vous utilisez la
- Types de variables : méthode WriteLine() ou Write() .

String : chaine de caractères : " toto "   Les deux sont similaire La seule différence
est que Write() n'insère pas de nouvelle
Char : stocke des caractères uniques,
ligne à la fin de la sortie .
tels que 'a' ou 'B’. 
- Exemple :
int : nombre entier : 0, 1, 2, 3, 4 (peut
être négatif, mais pas de virgules) Console.WriteLine( "Salam " ) ;

float : nombre à virgules : 1.5f Console.WriteLine(9+3) ;

bool : booléen : vrai ou faux (true / Entrée utilisateur:


false)
Pour obtenir l’entrée de l’utilisateur
- Règles de nommage : vous utilisez : Console.ReadLine()

Les variables doivent commencer par


un trait de soulignement ( _ ) ou une
lettre.
Les variables ne peuvent pas contenir
d'espaces.
les variables peuvent contenir des La méthode Console.ReadLine()
nombres. retourne un string .
- Problème :
= x=9
Vous ne pouvez pas obtenir
d'informations à partir d'un autre type += x += 8
de données !
-= x -= 7
- Solution :
Utilisée int.Parse() *= x *= 6

- Exemple :
/= x /= 5
int Age = int.Parse(Console.Readline());
%= x %= 4

Les Opérateurs C# : &= x &= 3


Les opérateurs sont utilisés pour
|= x |= 2
effectuer des opérations sur des
variables et des valeurs.
^= x ^= 1
- Les opérateurs arithmétiques :

Opérateur Nom
- Opérateurs de comparaison :

+ Addition Opérateur Nom

- Soustraction == Égal à

* Multiplication != Inégal

/ Division > Plus grand que

% Modulo < Moins que

++ Incrément >= Plus grand ou éga

-- Décrémente <= Inférieur ou égal à

- Opérateurs d'affectation :
- Opérateurs logiques :
Opérateur Exemple
Opérateur Nom description
4. Conditions & Boucles

&& et Renvoie True si les deux


Les Conditions :
déclarations sont vraies
 IF :
Est utilisée pour exécuter du code basé sur
|| ou Renvoieune
Truecondition, la condition doit être vraie
si l'une des
pour est
affirmations le code
vraieà exécuter.
- Syntaxe :
if (condition)
! non Inverse le{ }résultat, renvoie faux
si le résultat est vrai
- Exemple :
if (Year > 2010)
{
Remarques :
Console.WriteLine("Hello World!");
- Chaque instruction doit se
terminer par un point-virgule ; }
- La langue est sensible (donc A
et a sont différents)  IF ELSE :
- Un bloc de code est contenu à si une condition n'est pas évaluée à true,
l’intérieur d’accolades {} vous pouvez utiliser une instruction if else
- // Commentaire sur une ligne pour exécuter un autre code.
- /* Commentaire sur plusieurs
lignes */ - Exemple :
- Pas besoin non plus de if (Year > 2015)
respecter les tabulations.
- Pour les conditions, vous êtes {
obligé d’utiliser des Console.WriteLine("Hello World!");
parenthèses.
- \n : sert à retourner à la ligne }
Else

Configurer la console en UTF8 : {

Pour bien afficher les caractères Console.WriteLine("Year is: " + Year);


spéciaux : }
Console.OutputEncoding =  Switch :
System.Text.Encoding.UTF8 ;
Similaire à l'instruction If else, mais
elle présente ces avantages :
-Beaucoup plus facile à lire et à
maintenir.  Boucle WHILE :
-Beaucoup plus propre que Boucle en continu le code jusqu'à ce que
d'utiliser if else. la condition devienne fausse.
-Il n'évalue qu'une seule variable. - Syntaxe :
- Syntaxe : while (condition)
switch (switch on) {}
{ - Exemple :
default: while (Year >= 2013)
} {
if (Year != 2100)
- Exemple :
{
Console.WriteLine(Year++);
switch (Year)
}
{
else
case 2013 :
{ break; } }
Console.WriteLine("It's 2013!");
 Boucle FOR :
break;
Semblable à la boucle While, mais vous
case 2012 : spécifiez quand la boucle se terminera.
Console.WriteLine("It's 2012!"); - Syntaxe:
for (int i = 0; i < length; i++)
break;
{
default : }
Console.WriteLine("It's " + Year +
- Exemple :
"!");
for (int i = 0; i <= 100; i++)
break;
{
}
Console.WriteLine(i);
Le mot-clé break est obligatoire car il
empêche la chute de la casse. }

5. Les tableaux :
Les tableaux sont similaires aux variables,
Les Boucles :
mais peuvent contenir plusieurs valeurs.
- Syntaxe: CHKDSK pour vérifier si la disquette a
bien été formatée.
DataType[] ArrayName = { Comma
Separated Values } // Array of any size 2°) Utilisations de commandes
standard DOS dans un
DataType[] ArrayName = new DataType[3] fichier Batch
{Command Separated Values } //Expects 3 Il est très facile d'exécuter des
values commandes DOS dans un fichier
Batch, et c'est même
- Exemple: fait pour ça…
Il vous suffit d'insérer la commande
String[] MyGamesOf2013 = {"GTAV", dans le batch.
"Battlefield3"}; Par exemple, voici un fichier listant le
contenu du disque C:, allant dans le
dossier Jeux,
puis exécutant le fichier
SuperJeu.exe :
batch @echo off
1°) Introduction echo Listage du disque C:\
Basiquement, un fichier Batch n'est dir c:
rien de plus qu'un fichier texte echo Va dans le dossier jeux
contenant des cd jeux
commandes MS-DOS, et possédant le echo Lance SuperJeux.exe
suffixe ".bat". Superjeux.exe
Si vous ne connaissez pas MS-DOS Notre but n'est pas de vous apprendre
ou n'avez jamais entendu parler de toutes les commandes MS-DOS, vous
Autoexec.bat, êtes
passez votre chemin : en effet, la censé connaître les plus communes.
programmation Batch nécessite une Nous allons donc étudier ce qu'est une
connaissance commande MS-DOS en réalité.
minimum de l'environnement DOS.
En fait, un fichier Batch contient RAPPEL : Nous sommes sous DOS,
simplement une suite de commandes les noms de fichiers sont limités à 8
que vous pourriez caractères
taper sous l'invité (prompt) du DOS, (sinon, on tronque les deux derniers
chaque nouvelle ligne du fichier caractères par ~x, x représente un
correspondant à nombre
une nouvelle commande. Néanmoins, "discriminant" destiné à distinguer
certaines commandes ne sont deux éventuels noms communs)
qu'utilisables dans Il y a deux possibilités :
les fichiers batch du fait de leur inutilité Soit la commande DOS est intégrée
dans l'environnement de commande à l'interpréteur COMMAND.COM. C'est
DOS. le
Leur utilité est, par exemple, quand il cas des commandes les plus
faut répéter toujours la même série de communes comme DIR, CD, etc…
commandes. À titre d'exemple, nous Soit la commande est en réalité un
pourrions évoquer le changement de exécutable DOS, c'est-à-dire que c'est
répertoire et une
peut-être aussi la commande FORMAT
qu'on fait souvent suivre de la
commande
application qui est intégrée sous la Il contient une commande permettant
forme d'une commande standard. d'afficher à l'écran "Bonjour".
C'est sur Copiez-ce fichier dans C:\WINDOWS\
ce cas que nous allons nous pencher. COMMAND\
Tapez ensuite DisBonjour.bat =>
1°) Comment un exécutable peut- Votre texte apparaît à l'écran…
être considéré comme un Plus fort : tapez simplement
commande ? DisBonjour => Votre texte apparaît
Une commande est par définition un aussi à l'écran…
"mot" que l'on peut entrer où que l'on
soit (que l'on Conclusion 1 : Pour "ajouter" des
soit dans le répertoire A ou le commandes à MS-DOS, copiez des
répertoire B), et qui ne nécessite pas exécutables
qu'on indique son DOS d'extension .bat, .exe, ou .com
chemin d'accès, et qui bien sûr agit dans le répertoire "COMMAND" du
physiquement ou logiciellement sur dossier de
votre ordinateur Windows.
directement ou à l'aide de paramètres.
2°) La variable PATH et les autres
RAPPEL : Pour lancer un fichier .EXE, répertoires d'ajout possibles
.COM ou .BAT, il n'est pas nécessaire D'autres répertoires peuvent définir
de des chemins d'accès potentiels à des
préciser l'extension de ces derniers. commandes.
Pour lancer Superjeu.exe, vous n'êtes Pour voir les chemins d'accès
pas obligé de taper : possibles installés sur votre machine,
Superjeux.exe tapez "path" dans
Vous pouvez simplement entrer : une session MS-DOS.
Superjeu Voilà un exemple possible de résultat :
… pour que MS-DOS "comprenne" On peut voir que les répertoires
que vous souhaitez lancer le d'accès sont au nombre de 3, et
programme séparés par des point-virgule
"Superjeu.exe". :
C:\Windows (2 fois, il s'agit sans doute
Mais ou sont donc stockés ces d'une erreur d'un logiciel)
commandes ? C:\Windows\Command
C:\Cntx
Ces commandes sont stockées Cela veut dire que n'importe quel
"naturellement" dans fichier .exe, .bat, ou .com peut être
C:\DOSSIER_DE_WINDOWS\ lancé comme une
COMMAND\, donc, dans la majorité commande dans l'environnement
des cas, dans DOS :
C:\WINDOWS\COMMAND\
Si vous possédez un fichier .exe, .com Conclusion 2 (et finale) : Pour
ou .bat, et que vous souhaitiez l'établir "ajouter" des commandes à MS-DOS,
en tant copiez des
que commande DOS, copiez – le exécutables DOS
simplement dans ce répertoire. d'extension .bat, .exe, ou .com dans un
Par exemple, prenons l'exemple de des répertoires spécifiés par
DisBonjour.bat la variable "Path".
3°) Variables d'environnement
Une variable d'environnement, nous Set NomVariable = Valeur de la
l'avons déjà dit plus haut, représente variable
une valeur
accessible n'importe ou et n'importe
quand dans l'environnement DOS. 4°) Saut inconditionnel
Pour visualiser les variables Le langage Batch vous permet
d'environnement actives sur votre d'utiliser des commandes de boucle,
ordinateur, il vous suffit c'est a dire de
de taper la commande set ce qui donne répéter un bloc de commandes
par exemple : indéfiniment.
Précisons que, dans le langage Batch, En principe, les lignes de commande
la seule façon de stocker des données sont traitées les unes après les autres
est de les dans un
associer à des variables fichier Batch. Toutefois, dans certains
d'environnement. Il n'existe pas de cas, on est obligé de sauter des lignes
variables "locales" que pour
d'autres fichiers Batch ne pourraient reprendre le traitement à un autre
pas connaître (sauf les variables sous endroit du fichier. C'est dans ces cas là
la forme %x) que nous
Nous voyons donc que 8 variables allons utiliser les commandes de
d'environnement sont définies sur cet boucle.
ordinateur : On associe souvent une commande de
TMP, TEMP, PROMPT, saut à une commande d'instruction
WINBOOTDIR, COMSPEC, PATH, conditionnelle (voir chapitre suivant),
WINDIR; et BLASTER. ou lorsqu'un bloc de commande doit
Sur ces 8 variables, 7 sont définis par être répété
WINDOWS : TMP (Répertoire indéfiniment. C'est sur ce cas que nous
temporaire), TEMP allons nous pencher pour l'instant.
(Répertoire Temporaire), PROMPT Notre première boucle
(Invite du DOS), WINBOOTDIR Pour faire une boucle, il nous faut deux
(Dossier de commandes :
démarrage de Windows), COMSPEC - La première est un "Label", c'est-à-
(Adresse de l'interpréteur de dire une étiquette posée dans le
commandes), PATH programme à l'endroit ou la boucle doit
et WINDIR (Dossier de Windows). commencer.
Il est important de savoir que le - La seconde est la commande Goto,
contenu de ces variables est détruit (de l'anglais Go To… qui signifie "aller
une fois l'ordinateur à")
éteint ou la session DOS terminée. Il qui, accompagnée du nom du Label
faut donc, si ces variables doivent-être
présentes à 5°) Exécution conditionnelle – la
chaque session, les définir dans commande "IF"
Autoexec.bat (qui est lui lancé à Voici une commande qui permet
chaque démarrage). d'introduire des conditions dans les
Par exemple, la variable "BLASTER" fichiers batch.
est définie dans Autoexec.bat Si la condition formulée est remplie, le
Définir une variable reste de la ligne de commande est
d'environnement exécutée, et
Pour définir une variable
d'environnement, faites :
le programme continue normalement, séparées entre elles par des espaces,
sinon le reste de la ligne n'est pas des virgules, ou des points-virgules.
exécuté, et le Ensuite, la commande qui suit
programme continue également. immédiatement est exécutée avec la
Attention : seul la fin de la ligne est valeur prise par la
exécutée, par conséquent seule 1 variable %%A. Dans notre cas, on
seule commande verra à l'écran le message "C'est le
peut-être conditionnelle, ce qui peut nombre" suivi de
parfois poser des problèmes. Dans ce la valeur de la variable à chaque
cas, utilisez exécution de ECHO.
la commande GOTO pour aller à un Un autre intérêt de cette commande
endroit particulier si la condition est est que les éléments de la liste
remplie. peuvent-être des
Syntaxe d'utilisation : noms de fichiers. Ainsi il est possible
If "<condition>"=="<valeur>" <action> d'exécuter une seule commande pour
Attention il est important de : plusieurs
- Toujours encadrer la condition et la fichiers. Vous pouvez donc afficher à
valeur à tester par des guillemets, l'écran plusieurs fichiers à la fois avec
- De veiller à utiliser, lors d'un test, le un seule
double signe égal (== au lieu de =) commande qui est TYPE :
- Se rappeler que "<action>" FOR %%A IN (AUTOEXEC.BAT
représente une seule commande à CONFIG.SYS) DO TYPE %%A
exécuter. Vous pouvez aussi utiliser les
caractères génériques, par exemple :
6°) Boucles FOR %%A IN (*.TXT *.BAT ) DO TYPE
Après avoir fait connaissance avec une %%A
technique de la programmation des Tous les fichiers texte et Batch
sauts s'afficheront à l'écran.
inconditionnels (Goto), en voici une
autre. 10°) Appel d'autres fichiers Batch
Nous allons créer un petit batch qui va La commande CALL permet d'appeler
afficher successivement les chiffres 1 à un fichier Batch à partir d'un autre
4. fichier batch.
Ecrivez le fichier batch suivant : Après avoir traité le fichier batch
@echo off appelé, le programme revient au
for %%A in (1 2 3 4) Do Echo C'est le premier fichier batch
nombre %%A et à l'endroit précis où le fichier batch a
Ce fichier Batch contient une boucle été appelé.
FOR…DO. A quoi sert-elle ? Tout Vous pouvez également appeler un
d'abord, %%A fichier batch à partir d'un autre sans
est utilisé seulement en tant que nom pour autant
de variable. Cette variable prend alors revenir au fichier batch de départ. Il
toutes les suffit tout simplement d'appeler le
valeurs de la liste spécifiée entre les fichier batch par
parenthèses : dans notre cas, %%A son nom (ou son adresse) c'est à dire
prend donc sans CALL.
successivement les valeurs 1, 2, 3, et Appel sans CALL
4. Les valeurs constituant la liste Vous pouvez appeler un fichier batch à
doivent être partir d'un autre en utilisant son nom.
Le résultat
est que le batch appelé est traité, mais sur une clé USB. Il fut le premier package
il est impossible de revenir au batch de WAMP à voir le jour, en 1999.
sortie
précédemment traité. On peut en
quelque sorte parler de "liaison
unilatérale".
Exemple : //Apache permet aux propriétaires
C:\MesBatch\fichier.bat de sites web de servir du contenu sur le
Appel avec CALL web – d’où le nom « serveur web » .
Un batch X appelle un batch A à un
endroit précis. CALL a pour rôle de //MySQL n’est qu’un système
contrôler que populaire qui peut stocker et gérer ces
MS-DOS remarque bien le "point de données pour vous, et c’est une solution
saut" et revienne dans le batch de base de données particulièrement
appelant après populaire pour les sites WordPress.
avoir traité le batch appelé.
Le Batch A est donc utilisé comme un //L'interpréteur exécute
sous-programme. Cette utilisation l'instruction puis envoie les sorties
comporte un éventuelles au serveur • A la fin du
avantage majeur : on doit programmer script, le serveur transmet le résultat au
une seule fois les routines batch et on
client (le navigateur). Un script PHP est
peut
ensuite les appeler le nombre de fois interprété par le serveur, les utilisateurs
que l'on veut à partir de n'importe ne peuvent donc pas voir le code source!
fichier Batch.
Exemple :
CALL c:\MesBatch\Routine1.bat
Résumé EasyPHP:

_EasyPHP est une plate-forme de


développement Web permettant de faire
fonctionner localement (sans se
connecter à un serveur externe) des
scripts PHP. Ce n'est pas en soi un
logiciel mais un environnement //phpMyAdmin est un outil qui
comprenant deux serveurs (un serveur nous permet de visualiser rapidement
web Apache et un serveur de bases de l'état de notre base de données et de la
données MySQL), un interpréteur de modifier, sans avoir à écrire de requêtes
script (PHP), ainsi qu'une SQL. ·
administration SQL phpMyAdmin.

_Site d’installation d’easyphp :


_EasyPHP peut être utilisé comme une http://www.easyphp.org/
application portable, c’est-à -dire lancé
_ Il dispose d'une interface ● MySQL configuration
d'administration permettant de gérer les Manager (storage engine :
alias (dossiers virtuels disponibles sous InnoDB/MyISAM...)
Apache) et le démarrage/arrêt des ● Apache configuration
serveurs. Il permet donc d'installer en Manager (timezone, available
une seule fois tout le nécessaire au ports...)
développement local du PHP. Par défaut, ● Alias Manager
le serveur Apache crée un nom de
(ajout/suppression)
domaine virtuel (en local) 127.0.0.1 ou
localhost. Ainsi, quand on choisit « Web
Virtual Hosts Manager
local » dans le menu d'EasyPHP, le (ajout/suppression/activation/d
navigateur s'ouvre sur cette URL et ésactivation)
affiche la page index.php de ce site qui
correspond au contenu du dossier www - Microsoft Access est un système de
d'EasyPHP. gestion de base de données (SGBD) de
Microsoft qui combine le moteur de base
de données Access (ACE) relationnel avec
_ Il est aussi possible d'ajouter à une interface utilisateur graphique et des
EasyPHP des modules préconfigurés outils de développement de logiciels. Il fait
pour tester diverses applications web partie de la suite d'applications Microsoft
comme WordPress, Spip, Drupal,
365 ,
Joomla!, Prestashop….
-Microsoft Access stocke les données dans
son propre format basé sur le moteur de
Fonctions principales: base de données Access . Il peut
également importer ou lier directement
● Détection automatique du
des données stockées dans d'autres
répertoire d’installation en
applications et bases de données.
fonction des droits de
l'utilisateur - Microsoft Access a été le premier
● Détection automatique des programme de base de données grand
public pour Windows. Avec l'achat de
ports disponibles
FoxPro par Microsoft en 1992 et
● Gestion des composants : l'incorporation des
plusieurs versions de PHP (ou routines d'optimisation des
plusieurs fois la même) requêtes Rushmore de Fox dans
peuvent être installées Access, Microsoft Access est
● Possibilité de basculer d'une rapidement devenu la base de
données dominante pour Windows,
version de PHP à une autre en
éliminant ainsi la concurrence qui n'a
un clic pas réussi à passer du monde MS-
● PHP configuration Manager DOS .
(max execution time, error
-Le logiciel Access contient plusieurs types
reporting, upload max d'objets. Les objets de la base de données
filesize...) sont des objets qui apparaissent dans la
fenêtre Base de données. C'est l'utilisateur
qui crée ces objets. Nous utiliserons les stores multiple scalars
objets suivants: declare with : “my @nameofarray = (21,
“elliot” ,12.89) ; ”
Table: Structure fondamentale du système
de gestion de bases de données $nameofarray[0] ; // 21
relationnelles. Dans Access, une table est
un objet qui stocke des données dans des $nameofarray[-1] ; // 12.89
enregistrements (lignes) et des champs
@nameofarray[0 .. 2] ; // 21elliot12.89
(colonnes). Les données sont (glued together)
généralement relatives à une catégorie
particulière NB : @nameofarray[0 .. -1] // invalid cuz
0 >> -1
Requête: Une requête permet: - de poser @nameofarray[-1.. 0] // valid
une question sur les données stockées
dans les tables - d'accomplir une action print $#nameofarray; // prints last index ie
sur ces données. 2
print scalar @nameofarray ; // prints
Formulaire: Objet de base de données number of elements of the array
Access dans lequel vous placez des
contrôles servant à saisir, afficher et -hashes :
modifier des données dans les champs.
declare with :
Etat: Objet de base de données Access qui my %nameofhash = (
présente des informations mises en forme ‘key 1’ , ‘value 1’ ,
et organisées selon vos spécifications, par key 2 => ‘value 2’
exemple - des récapitulatifs de ventes, - );
print $nameofhash {key1}; // prints
des listes de numéros de téléphone - des
value1
étiquettes pour publipostage. @keys = keys % nameofhash;
// stores in @keys all keys of the hash
%nameofhash /
Perl // @key == (key 1 , key 2 )
@val = values % nameofhash; // stores in
@val all values of the hash %nameofhash
variables : // @val == (value 1 , value 2 )

- Scalars : dynamic singular values . $size = keys % nameofhash;


declare with : // $size == size of hash which is 2
my $nameofvar = //value ; (local
declaration) //add element to hash
“our” .. .. . . .. . .. .. …. ; (global $ nameofhash {key3} = ‘value 3’;
declaration) //delete element from hash
delete $ nameofhash {key3} ;

user input : Comments :


my $usrinput = <> ; # single line

=begin
- arrays : paragraph
=cut }

CONDITIONS :
do {
if ( condition ){ // instructions
} while (condition )
//instructions
do {
}else if ( condition ){ // instructions
} until (condition )
//instructions // == do { instructions } while ( !
} else { condition)
//instructions
}

unless ( condition ){ // same as if (!


condition )
/instructions
}
OPPERATORS :

LOOPS :
for (my $i = 0 ; $i<10 ;$i++) {say $i;} //
c style

for $i (0 .. 10 ) {say $i;} // 1 to 10

foreach (0 .. 10 ) {say $_ ;} // $_
automatic var

for (@array ) {say $_ ;} // prints all


elements of @array
while (condition ) {
//instruction
}

until (condition ) { // == while ( !


condition)
//instruction

Vous aimerez peut-être aussi