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 :
Et le 2e pour repasser en IP Dynamique :
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
Mais je me suis retrouvé bloqué pour deux choses :
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
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 :
J'aimerais bien trouver une solution pour implémenter sous forme de VB dans mon Code ci-dessus
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
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 :
Je vous remercie,
Cordialement,
Anthony
Partager