Page 1 sur 1

[R] Changer ip en fonction du nom de machine

Posté : mar. 14 sept. 2010 12:10
par guillaume
Bonjour,

je suis en train de créer un programme pour choisir des profils de connection réseau.

J'utilise pour ça des commandes dos :

exemple de fonction :

Code : Tout sélectionner

    Func _admin()
        $rc = _RunDos ("netsh interface set interface name=WIFI admin=DISABLE")
        $rc = _RunDos ("netsh interface set interface name=LAN admin=ENABLE")
        $rc = _RunDos ("netsh interface ip set address LAN static 192.168.1.1 255.255.0.0 192.168.1.254 1")
        $rc = _RunDos ("netsh interface ip set dns LAN static 192.168.1.100 primary")
        GUIDelete()
        MsgBox (0,"","réseau administratif")
Seulement pour éviter de faire un programme pour chaque pc je souhaiterais que l'adresse ip soit une variable en fonction du poste.

Sachant que le nom de machine a un lien avec l'adresse ip.

Explication :

nom du pc PORT11
ip 192.168.1.1

nom du pc PORT12
ip 192.168.1.2

nom du pc PORT21
ip 192.168.2.1

ainsi de suite...

les 2 derniers chiffres du nom correspondent respectivement au 2 dernier octets de l'adresse ip

Je pense qu'il faut que je joue avec @ComputerName mais je ne sais pas comment m'y prendre.

Pouvez vous m'apporter de l'aide ?

merci à vous.

Re: [..] Changer ip en fonction du nom de machine

Posté : mar. 14 sept. 2010 14:30
par GaRydelaMer
Bonjour

remplace le "PORT23" par @computername

Code : Tout sélectionner

Local $ip= "192.168."
Local $name = "PORT23"
If StringRegExp($name, ".*(\d)(\d)", 0) Then
    local $Matchs = StringRegExp($name, ".*(\d)(\d)", 1)
    $ip &= $Matchs[0] & "."  & $Matchs[1]
    MsgBox( 4096, "", "Ip: " & $ip )
Else
    $ip = InputBox("Adrese IP", "Qu'elle adresse ip ??", $ip)
EndIf
 
Aprés tu peux appeler ta fonction _admin(). ajoute un paramètre $IP à la fonction ;) et change els chaines d'appel des commande DOS.

Re: [..] Changer ip en fonction du nom de machine

Posté : jeu. 16 sept. 2010 11:44
par guillaume
Merci beaucoup, en adaptant en peu j'ai réussi à faire exactement ce que je voulais.