Bonjour,

Voici une petite procédure permettant de déterminer si l'IP récupérée avec NetAdresseIP() est une IP statique ou dynamique.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
PROCÉDURE GLOBALE Is_IpDynamique(LOCAL _sIP = NetAdresseIP())
//Renvoie 0 si IP fixe, 1 si IP dynamique, -1 si impossible à déterminer
 
LOCAL
	iIPDynamique est un entier
	sChemin est une chaîne
	bValeurLue est un booléen
	sIPTmp est une chaîne
	iEnableDHCP est un entier
 
iIPDynamique = -1
 
sChemin = RegistrePremièreSousClé("HKEY_LOCAL_MACHINE\System\ControlSet001\Services\Tcpip\Parameters\Interfaces")
//Parcourir toutes les clés correspondantes aux interfaces réseaux
TANTQUE sChemin <> ""
	bValeurLue = Faux
 
	//------------------------------------
	//Test si IP dynamique
	sIPTmp = RegistreLit(sChemin,"DhcpIPAddress",bValeurLue)
	sIPTmp = Remplace(sIPTmp,Caract(0),"")
	SI bValeurLue _ET_ _sIP = sIPTmp ALORS
		iEnableDHCP = RegistreLit(sChemin,"EnableDHCP",bValeurLue)
		SI iEnableDHCP = 1 ALORS
			iIPDynamique = 1
			SORTIR
		FIN
	FIN
 
	//------------------------------------
	//Test si IP fixe
	sIPTmp = RegistreLit(sChemin,"IPAddress",bValeurLue)
	sIPTmp = Remplace(sIPTmp,Caract(0),"")
	SI bValeurLue _ET_ _sIP = sIPTmp ALORS
		iEnableDHCP = RegistreLit(sChemin,"EnableDHCP",bValeurLue)
		SI iEnableDHCP = 0 ALORS
			iIPDynamique = 0
			SORTIR
		FIN
	FIN
 
	sChemin = RegistreCléSuivante(sChemin)
FIN
 
RENVOYER iIPDynamique
Bonne prog