Bonjour à tous,

Je me nomme Anthony, je suis en 1ère année de BTS SIO et mon tuteur m'a demandé de faire un petit logiciel qui permettrait de passer d'une IP Dynamique à domicile ; à deux IP Statiques au bureau.
(Une IP User et l'autre en Superviseur).

J'ai donc commencé à faire deux petits logiciels en Batch par personnes travaillant dans le service informatique (c'est à dire 6 fichiers au total, soit 2 par personne)

Un pour passer en IP Fixe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
netsh interface ip set address "Connexion au reseau local" static 192.168.50.20 255.255.255.0 gateway=192.168.150.254 gwmetric=1
netsh interface ip set dns "Connexion au reseau local" static 192.168.150.231 primary
netsh interface ip add address "Connexion au reseau local" 192.168.158.20 255.255.255.0 gwmetric=2
Et le 2e pour repasser en IP Dynamique :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
netsh interface ip set address "Connexion au reseau local" dhcp
netsh interface ip set dns "Connexion au reseau local" dhcp
Mais je me suis retrouvé bloqué pour deux choses :
Chacune de nos cartes ont un nom différent
Mon tuteur voulait un logiciel plus poussé :

Imaginons, je connecte mon ordinateur portable au bureau (la configuration de l'IP est actuellement en dynamique. Exemple : 192.168.150.153)

Hors j'ai besoin qu'il m'ajoute mes 2 IP Fixe, qui serviront l'une à accéder au réseau Utilisateur et l'autre à accéder au réseau Supervision

(Exemple : Réseau User 192.168.150.20 et Réseau Supervision 192.168.180.20)

Le logiciel devra en toute finalité pouvoir faire ceci :

Identifier le nom de la carte réseau (Exemple : Réseau Local)

Identifier la ou les adresses IP actuelles puis les comparer aux IP Fixe que je souhaite sur mon poste (2e Exemple)

Si la ou les IP commencent par 192.168.x.x appliquer les IP Fixe

Si l'IP ou les IP ne commencent pas par 192.168.x.x ne rien faire.

C'est ce que le logiciel devra faire en finalité

Mais pour l'instant je vérifie qu'il enregistre bien ce que je veux comme données (c'est pour cela qu'il y a des "Console.Write" dans mon code actuel qui suit :

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
47
48
49
50
51
52
53
54
55
56
57
Imports System.Net
Imports System.Net.NetworkInformation
 
Module module1
 
    Sub Main()
        Call Click()
    End Sub
 
    Private Sub Click()
        Dim Interfaces As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces
 
        'Dim OperationalStatus As ValueType
 
        Dim adapter As NetworkInterface
        'Dim myGateways As GatewayIPAddressInformationCollection
 
 
 
        For Each adapter In Interfaces
            ' Si la carte réseau est active et ne comprend pas "loopback", "v", "tunnel" écrire son nom dans adapter.name
            If adapter.OperationalStatus = Net.NetworkInformation.OperationalStatus.Up = True And InStr(LCase(adapter.Name), "loopback") = 0 And InStr(LCase(adapter.Name), "v") = 0 And InStr(LCase(adapter.Name), "tunnel") = 0 Then
 
 
                Console.Write("Votre Carte réseau se nomme " & adapter.Name & "." & vbNewLine)
                Console.ReadKey()
 
                Dim IPInfo As UnicastIPAddressInformationCollection = adapter.GetIPProperties().UnicastAddresses
                Dim properties As IPInterfaceProperties = adapter.GetIPProperties()
 
 
                Dim ips() As IPAddress = Dns.GetHostAddresses(Dns.GetHostName)
                For Each ipa In ips
 
                    If ipa.AddressFamily = Net.Sockets.AddressFamily.InterNetwork And adapter.NetworkInterfaceType = NetworkInterfaceType.Tunnel = False And adapter.NetworkInterfaceType = NetworkInterfaceType.Wireless80211 <> True And adapter.NetworkInterfaceType = NetworkInterfaceType.Ethernet = True Then
 
                        Console.Write(" ")
                        Console.Write(ipa.ToString & vbNewLine)
                        Console.ReadKey()
 
 
                    ElseIf ipa.AddressFamily = Net.Sockets.AddressFamily.InterNetwork And adapter.NetworkInterfaceType = NetworkInterfaceType.Tunnel = False And adapter.NetworkInterfaceType = NetworkInterfaceType.Wireless80211 <> False And adapter.NetworkInterfaceType = NetworkInterfaceType.Ethernet = False Then
 
                        Console.Write(" ")
                        Console.Write(ipa.ToString & vbNewLine)
                        Console.ReadKey()
 
                    End If
                Next
            End If
        Next
 
 
 
    End Sub
 
End Module
J'aimerais bien trouver une solution pour implémenter sous forme de VB dans mon Code ci-dessus
une chose qui soit similaire à mes 2 Codes en Batch. Je me demande si le faire en VB était vraiment judicieux ...

J'espère avoir réussi à être clair pour expliquer mon problème et que vous arriverez à m'aider.

Voici l'image ce que m'affiche le logiciel pour le moment :

Nom : test_IP.PNG
Affichages : 109
Taille : 6,3 Ko

Je vous remercie,

Cordialement,

Anthony