OVH Cloud OVH Cloud

Appliquer une adresse ip sur une interface réseau

2 réponses
Avatar
Nico
Bonjour à toutes et à tous

J'ai une question qui me trotte dans la tête depuis un bout de temps...
Auriez-vous un bout de code me permettant d'appliquer une adresse ip à
une interface réseau (une cart réseau), un masque, les dns. Il me semble
qu'avec les composants WMI c'est faisable mais je n'ai trouvé aucun
document exploitable directement.


Amicalement Frost

2 réponses

Avatar
Jacques93
Bonjour Nico,
Nico a écrit :
Bonjour à toutes et à tous

J'ai une question qui me trotte dans la tête depuis un bout de temps...
Auriez-vous un bout de code me permettant d'appliquer une adresse ip à
une interface réseau (une cart réseau), un masque, les dns. Il me semble
qu'avec les composants WMI c'est faisable mais je n'ai trouvé aucun
document exploitable directement.


Amicalement Frost



Adapté des codes :

http://www.delphi3000.com/articles/article_4392.asp?SK
et

http://mcpmag.com/columns/article.asp?EditorialsIDB7

Sinon tu peux faire une recherche sur :

Win32_NetworkAdapterConfiguration

Ref MSDN :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_networkadapterconfiguration.asp

----------------------------------------------------------
Option Explicit

Private Sub Command1_Click()
SetIpConfig "192.168.1.5", "255.255.255.0", "192.168.1.1"
SetDNSServers "192.168.1.1", ""
End Sub

Private Sub SetIpConfig(IpAddr As String, SubNetMask As String, Gateway
As String)
Dim objLocator, objService, objEnumerator, oNetAdapter
Dim Context, intStatus

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer _
("localhost", "rootcimv2", , 0, Context)
Set objEnumerator = objService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration
Where IPEnabled = True")

objService.Security_.impersonationlevel = 3

For Each oNetAdapter In objEnumerator
If Len(IpAddr) = 0 Then
intStatus = oNetAdapter.EnableDHCP
Else
intStatus = oNetAdapter.EnableStatic(Array(IpAddr),
Array(SubNetMask))
intStatus = oNetAdapter.SetGateways(Array(Gateway))
End If
Next
End Sub


Private Sub SetDNSServers(PrimaryDNS As String, AlternateDNS As String)
Dim objLocator, objService, objEnumerator, oNetAdapter
Dim Context, intStatus

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer _
("localhost", "rootcimv2", , 0, Context)
Set objEnumerator = objService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration
Where IPEnabled = True")

objService.Security_.impersonationlevel = 3

For Each oNetAdapter In objEnumerator
If Len(PrimaryDNS) > 0 And Len(AlternateDNS) = 0 Then
intStatus = oNetAdapter.SetDNSServerSearchOrder(Array(PrimaryDNS))
ElseIf Len(PrimaryDNS) > 0 And Len(AlternateDNS) > 0 Then
intStatus = oNetAdapter.SetDNSServerSearchOrder(Array(PrimaryDNS,
AlternateDNS))
Else
intStatus = oNetAdapter.SetDNSServerSearchOrder()
End If
Next
End Sub


--
Cordialement,

Jacques.
Avatar
Nico
Merci de l'information Jacques93

Jacques93 a écrit :
Bonjour Nico,
Nico a écrit :

Bonjour à toutes et à tous

J'ai une question qui me trotte dans la tête depuis un bout de
temps... Auriez-vous un bout de code me permettant d'appliquer une
adresse ip à une interface réseau (une cart réseau), un masque, les
dns. Il me semble qu'avec les composants WMI c'est faisable mais je
n'ai trouvé aucun document exploitable directement.


Amicalement Frost




Adapté des codes :

http://www.delphi3000.com/articles/article_4392.asp?SK >
et

http://mcpmag.com/columns/article.asp?EditorialsIDB7

Sinon tu peux faire une recherche sur :

Win32_NetworkAdapterConfiguration

Ref MSDN :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_networkadapterconfiguration.asp


----------------------------------------------------------
Option Explicit

Private Sub Command1_Click()
SetIpConfig "192.168.1.5", "255.255.255.0", "192.168.1.1"
SetDNSServers "192.168.1.1", ""
End Sub

Private Sub SetIpConfig(IpAddr As String, SubNetMask As String, Gateway
As String)
Dim objLocator, objService, objEnumerator, oNetAdapter
Dim Context, intStatus

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer _
("localhost", "rootcimv2", , 0, Context)
Set objEnumerator = objService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration
Where IPEnabled = True")

objService.Security_.impersonationlevel = 3

For Each oNetAdapter In objEnumerator
If Len(IpAddr) = 0 Then
intStatus = oNetAdapter.EnableDHCP
Else
intStatus = oNetAdapter.EnableStatic(Array(IpAddr),
Array(SubNetMask))
intStatus = oNetAdapter.SetGateways(Array(Gateway))
End If
Next
End Sub


Private Sub SetDNSServers(PrimaryDNS As String, AlternateDNS As String)
Dim objLocator, objService, objEnumerator, oNetAdapter
Dim Context, intStatus

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer _
("localhost", "rootcimv2", , 0, Context)
Set objEnumerator = objService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration
Where IPEnabled = True")

objService.Security_.impersonationlevel = 3

For Each oNetAdapter In objEnumerator
If Len(PrimaryDNS) > 0 And Len(AlternateDNS) = 0 Then
intStatus = oNetAdapter.SetDNSServerSearchOrder(Array(PrimaryDNS))
ElseIf Len(PrimaryDNS) > 0 And Len(AlternateDNS) > 0 Then
intStatus = oNetAdapter.SetDNSServerSearchOrder(Array(PrimaryDNS,
AlternateDNS))
Else
intStatus = oNetAdapter.SetDNSServerSearchOrder()
End If
Next
End Sub