Avatar billede hadaps Nybegynder
20. november 2004 - 00:01 Der er 16 kommentarer og
1 løsning

hente lokal ip m.m.

Hey...

Hvordan kan jeg via mit program hente både ip, subnet, gateway & dns servere fra computerens netværksopsætning?

Det er et lokalt program som skal køre og så hente dem frem

jeg bruger vb.net 2003
Avatar billede guidmaster Nybegynder
20. november 2004 - 06:53 #1
Avatar billede guidmaster Nybegynder
20. november 2004 - 06:54 #2
Ellers er der jo evt. http://www.eksperten.dk/spm/561779
Avatar billede hadaps Nybegynder
20. november 2004 - 08:10 #3
Når jeg prøver at hente det via WMI, så får jeg følgende fejl ved:

Dim objMOC As ManagementObjectCollection = objMC.GetInstances()

Fejl:

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in system.management.dll

Additional information: Tjenesten eller gruppen, som det afhænger af, startede ikke.

Her du en idé til hvordan det problem kan løses?
Avatar billede guidmaster Nybegynder
20. november 2004 - 08:18 #4
Har du husket at tage system.management.dll med i din solution ?
Avatar billede hadaps Nybegynder
20. november 2004 - 08:21 #5
hvis du mener at tilføje den under references - så ja
Avatar billede guidmaster Nybegynder
20. november 2004 - 08:25 #6
Jeg hader danske fejlmeddelser :(

Hvilket system køre du på?
Avatar billede hadaps Nybegynder
20. november 2004 - 08:29 #7
winxp pro
Avatar billede guidmaster Nybegynder
20. november 2004 - 08:33 #8
Sidder selv på samme og kan ikke fremkalde den fejl - må vi se koden du forsøger at afvikle?
Avatar billede hadaps Nybegynder
20. november 2004 - 08:35 #9
yeps - kommer her:

Dim objMC As ManagementClass
        objMC = New ManagementClass("Win32_NetworkAdapterConfiguration")
        Dim objMOC As ManagementObjectCollection = objMC.GetInstances() '(Det er her den fejler)
        Dim objmo As ManagementObject
        Dim i As Integer
        For Each objmo In objMOC

            If objmo.Item("ipEnabled") = True Then




                lbStatus.Items.Add(objmo.Item("Caption") & " :: " & objmo.Item("ServiceName") & "," & objmo.Item("MACAddress"))
                Dim ipaddresses() As String = objmo.Item("IPAddress")
                Dim subnets() As String = objmo.Item("IPSubnet")
                Dim gateways() As String = objmo.Item("DefaultIPGateway")


                lbStatus.Items.Add("Printing Default Gateway Info:")
                lbStatus.Items.Add(objmo.Item("DefaultIPGateway").ToString())

                lbStatus.Items.Add("Printing IPGateway Info:")
                For i = gateways.GetLowerBound(0) To gateways.GetUpperBound(0)
                    lbStatus.Items.Add(gateways(i))
                Next
            End If
Next
Avatar billede guidmaster Nybegynder
20. november 2004 - 08:47 #10
Jeg har rettet en smule i din kode som virker perfekt her.

Imports System.Management
Module Module1
    Sub Main()
        Dim objMC As ManagementClass
        Try
            objMC = New ManagementClass("Win32_NetworkAdapterConfiguration")
            Dim objMOC As ManagementObjectCollection = objMC.GetInstances()
            Dim objmo As ManagementObject
            Dim i As Integer
            For Each objmo In objMOC
                If objmo.Item("ipEnabled") = True Then
                    Console.WriteLine(objmo.Item("Caption") & " :: " & objmo.Item("ServiceName") & "," & objmo.Item("MACAddress"))
                    Dim ipaddresses() As String = objmo.Item("IPAddress")
                    Dim subnets() As String = objmo.Item("IPSubnet")
                    Dim gateways() As String = objmo.Item("DefaultIPGateway")

                    Console.WriteLine("Printing Default Gateway Info:")
                    If Not objmo.Item("DefaultIPGateway") Is Nothing Then
                        Console.WriteLine(objmo.Item("DefaultIPGateway").ToString())
                    End If

                    Console.WriteLine("Printing IPGateway Info:")
                    If Not gateways Is Nothing AndAlso gateways.Length > 0 Then
                        For i = gateways.GetLowerBound(0) To gateways.GetUpperBound(0)
                            Console.WriteLine(gateways(i))
                        Next
                    End If
                End If
            Next
        Catch ex As Exception
            Console.WriteLine(ex.Message & " - " & ex.StackTrace)
        End Try
    End Sub
End Module
Avatar billede hadaps Nybegynder
20. november 2004 - 08:57 #11
Hvad ske der??? er der et sted i systemet hvor det kan være deaktiveret?
for nu har jeg denne fejl: (det er samme sted den fejler)

Tjenesten eller gruppen, som det afhænger af, startede ikke. -    at System.Management.ThreadDispatch.Start()
  at System.Management.ManagementScope.Initialize()
  at System.Management.ManagementObject.Initialize(Boolean getObject)
  at System.Management.ManagementClass.GetInstances(EnumerationOptions options)
  at System.Management.ManagementClass.GetInstances()
Avatar billede guidmaster Nybegynder
20. november 2004 - 09:04 #12
Prøv lige dette i en cmd:
net stop winmgmt
net start winmgmt
Avatar billede hadaps Nybegynder
20. november 2004 - 09:09 #13
Den er slet ikke startet, og da jeg prøvede på det kom denne fejl:

Systemfejlen 1068 opstod.
Avatar billede guidmaster Nybegynder
20. november 2004 - 09:13 #14
Så er jeg ved at give fortabt da det ikke har så meget med programmering at gøre, men prøv evt. at følge denne tråd: http://www.dotnet247.com/247reference/msgs/48/240143.aspx
Avatar billede hadaps Nybegynder
20. november 2004 - 09:15 #15
okay - bar eiorden - men nu ved jeg da hvor hende af jeg har problemer - mange tak for hjælpen, og du skal have dine velfortjente point
Avatar billede guidmaster Nybegynder
20. november 2004 - 09:41 #16
Så er det jo noget med at jeg skal lave et svar :)

Håber du finder ud af hvad der fejler !
Avatar billede hadaps Nybegynder
20. november 2004 - 11:31 #17
så fik jeg det til at køre - både min og din kode virker nu ;)
Her er hvad jeg skulle igennem:

C:\>cd %windir%\system32\wbem

C:\WINDOWS\system32\wbem>ren repository repository.old

C:\WINDOWS\system32\wbem>winmgmt /clearadap

C:\WINDOWS\system32\wbem>winmgmt /kill

C:\WINDOWS\system32\wbem>winmgmt /unregserver

C:\WINDOWS\system32\wbem>winmgmt /regserver

C:\WINDOWS\system32\wbem>winmgmt /resyncperf
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester