tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
979
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Vamp7771 Vamp7771 ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Ort
    Nähe Karlsruhe
    Beiträge
    75
    Hallo zusammen,

    ich habe mir etwas programmiert, wodurch ich nun meine IP Adresse über die Hostnameneingabe bekomme.

    Nur dank unserer Active Directory (Netbios ist ja deaktiviert) stimmen die meisten IP Adressen nicht mehr, also möchte ich folgendes programmieren:

    Ich gebe meinen Hostnamen ein, erhalte die IP Adresse über System.Net und würde diese nun auch gerne mit dem DHCP vergleichen.
    Stimmt diese IP adresse, so soll auch diese dann angezeigt werden, stimmt sie nicht, soll man darauf hingewiesen werden und die richtige (vom DHCP) sehen.

    Mein Anfang ist dieser (Haupcode):

    Code :
    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
    
     
    Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
            KeyPreview = True
            If e.KeyCode = Keys.Enter Then
                If TextBox1.Text <> "" Then
                    Try
                        StrHost = TextBox1.Text
                        SearchStr = StrHost + StrSuffix
                        Dim index As Integer
                        Dim StrIpAddrInfo As New System.Net.Sockets.TcpClient
                        Dim hostInfo As IPHostEntry = Dns.GetHostByName(SearchStr)
                        StrIpAddrInfo.Connect(hostInfo.AddressList(index), 135)
                        For index = 0 To hostInfo.AddressList.Length - 1
                            If index >= 0 Then
                                TextBox2.Multiline = True
                                TextBox2.AutoSize = True
                                TextBox2.Visible = True
                            End If
                            TextBox2.Text = Convert.ToString(hostInfo.AddressList(index)) & vbCrLf & "Timeout: " & (StrIpAddrInfo.ReceiveTimeout.ToString)
                        Next index
                    Catch ex As Exception
                        MessageBox.Show(ex.Message)
                        MessageBox.Show("Name konnte nicht gefunden werden! - Bitte neuen Namen eingeben")
                        TextBox1.Text = ""
                    End Try
                End If
            End If
        End Sub
    #End Region

    Wie ich die Abfrage des DHCPs machen soll weiß ich nicht, es gibt keine Klasse dafür, und im Internet lese ich immer LDAP, und System.DirectoryServices, aber auch der Namespace stellt mir keine Klasse zur Verfügung die mir weiterhilft.

    Weißt das jemand, wie kann ich einen Request an einen DHCP machen und die IP Adresse vergleichen, mit der ich bereits über Dns.GetHostByName erhalte?

    mfg
    Vampy
     

  2. #2
    Vamp7771 Vamp7771 ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Ort
    Nähe Karlsruhe
    Beiträge
    75
    Weiß keiner eine Lösung?

    *help*
     

  3. #3
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Ähm, moment

    Was genau willst du da jetzt eigentlich? Die deinem Rechner zugewiesene IP-Adresse in einem Formular anzeigen?

    Die Daten die du via DNS-Klasse bekommst, kommen direkt vom DNS-Server, sollten also stimmen. Inwiefern du da jetzt das Active Directory in Beziehung bringst, weiß ich nicht, würde ich dich jedoch bitten, dies aufzuklären. Denn ich weiß nicht warum irgendwelche IP-Adressen nicht mehr stimmen sollten, ausser du wählst zufällige, die auch nicht vergeben wurden.

    Ich denke, dass du hier etwas verwirrt bist
     

  4. #4
    dobPh dobPh ist offline Mitglied
    Registriert seit
    Oct 2006
    Beiträge
    20
    Hallo,

    ich habe schon ein bißchen mit LDAP und dem DirectoryService unter VB.Net gearbeitet aber ich verstehe nicht ganz was du machen möchtest. Meines erachtens nach kannst du keine IP's aus der AD lesen, die werden (wenn ich nicht irre), dort auch gar nicht gespeichert, sondern nur der PcName, OS, Description etc. pp.
    Die Adresse die du über Dns.GetHostByName bekommst müsste doch normalerweise die Adresse sein, die der DHCP dem Rechner den du suchst zugewiesen hat.

    Grüße
    Philipp


    edit:
    Da war der Norbert wohl schneller mit tippen .
     

  5. #5
    Vamp7771 Vamp7771 ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Ort
    Nähe Karlsruhe
    Beiträge
    75
    Hallo,

    hier kommt die Aufklärung:

    Unser AD ist so aufgebaut, dass es pro Site einen DomainController gibt (okay, ist wohl nichts Besonderes
    Jeder Benutzer, der sich nun anmeldet, meldet sich auf dem DC an, der am schnellsten auf den Broadcast antwortet (bisher macht es denke ich auch noch Sinn)

    Nur haben unsere Jungs von der Leitstelle in Oxford sich leider einen Patzer erlaubt, und können dies nun auch nicht mehr beheben (wohl zu faul)
    Der Patzer ist:
    Wir haben keinen Primary DC und keinen Sec DC Eintrag, das heisst, der Rechner verbindet sich mit dem DC, der zuerst antwortet (wir haben mehr als 50DC's, weltweit)

    So er verbindet sich nun, erhält eine IP Adresse und einen Lease.
    Die Leasings werden aktualisiert, jedoch in gewissen Abständen.

    Mein Problem ist nun:

    Loggt sich ein User 2 mal am Tag ein, so verbindet er sich möglicherweise mit 2 verschiedenen DC's und erhält mit 1 Hostname 2 IP Adressen.
    DNS liefert mir immer nur 1 IP Adresse.
    Der DHCP aber hat dann 2 Einträge und der neueste Eintrag stimmt.
    Das muss ich ermitteln.

    Ich hoffe ihr habt nun mein Problem verstanden, den es ist auch etwas doof zu erkären.

    @ Norbert:

    Nein, ich möchte kein Formular, ich habe nur 2 Textboxes:
    - in die erst wird der Hostname eingegeben
    - in der 2ten wir die IP Adresse dazu angezeigt

    Ich bin nun soweit, dass ich mir über DNS die IP Adresse anzeigen lasse, aber ich kann eben nicht sicherstellen, ob denn nun das die richtige oder vielleicht eine veraltete ist.

    mfg
    Vampy
     

  6. #6
    dobPh dobPh ist offline Mitglied
    Registriert seit
    Oct 2006
    Beiträge
    20
    Hallo,

    normalerweise sollte doch aber das Ergenbnis schon der aktuelle (letzter Eintrag) des DHCP's sein, oder?

    Auf jeden Fall liegt der Lösungsansatz dann nicht über eine Abfrage der AD, da wie gesagt meiner Meinung nach keine IP Adressen in der AD abgelegt werden. Das einzige was mir jetzt auf die Schnelle einfällt, wäre eine AD Abfrage nach dem 'lastlogon' zu machen und dann zu gucken ob es ca. mit DHCP Eintrag Zeit übereinstimmt (falls so was überhaupt möglich ist).

    Grüße
    Philipp
     

  7. #7
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Zu welchem DC sich der Rechner verbindet ist doch vollkommen egal. Das AD hat mit dieser Geschichte nichts zu tun.

    Du beziehst deine IP-Adresse _immer_ vom DHCP-Server (wenn eben die IP-Adressen automatisch bezogen werden). Wenn der Rechner-Name auf eine "alte" IP-Adresse verweist, dann solltet ihr euren DNS-Server etwas unter die Lupe nehmen, denn dann aktualisiert dieser nicht schnell genug.

    Das ist ein Problem welches du programmiertechnisch nicht umgehen kannst. Die IP, die bei dir am Rechner eingetragen ist, ist die aktuelle. Die, welche du dann aber eventuell via DNS-Server bekommst, könnte in deinem Fall eben alt sein. Dann ist das aber ein generelles Netzwerkproblem hätte ich jetzt gesagt.

    EDIT: Wobei es natürlich auch möglich ist, dass ein Rechner mehrere IP-Adressen bekommt, weil er diese benötigt, aber das ist wieder eine andere Geschichte und wird bei euch wohl nicht der Fall sein.

    Wenn ihr DHCP und DNS von Microsoft verwendet, dann solltets Dynamic DNS verwenden. Und eventuell Caching ausschalten

    Und welche Firma hat bitte FÜNFZIG DC's. Ist ja schwerst oversized ...
     

  8. #8
    Vamp7771 Vamp7771 ist offline Mitglied Silber
    Registriert seit
    Oct 2005
    Ort
    Nähe Karlsruhe
    Beiträge
    75
    Jap,

    da gebe ich euch auch Recht.
    Ich weiß, es ist der falsche Ansatz, hinten aufzuräumen, aber vorne (am DNS) darf ich nicht, da ich nicht mehr die Rechte habe (seit AD machen wir das nun Zentral)
    Das bedeutet ich bin nun ein eingeschränkter Administrator....

    gut, hmpf....

    Dennoch bleibt mein Problem, ich möchte den DHCP Server via .Net nach IP Adressen zu Hostnamen abfragen, anstatt mir die Infos über DNS zu holen, da diese einfach nicht 100% korrekt sind.
    Gibt es diese Möglichkeit überhaupt?

    Sorry, falls ich euch etwas verwirrt habe.



    mfG
    Vampy
     

  9. #9
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Ihr werdet wohl einen Administrator haben, der den DNS entsprechend konfigurieren kann und sollte. Dein Problem dürfte in diesem Netzwerk ja wohl nicht das einzige sein.

    Ansonsten schau dir einfach mal die DHCP Server Callout API an. Dazu brauchst allerdings ein paar Rechte am DHCP bzw. DC.
     

Ähnliche Themen

  1. [C#/C++] DHCP Lease Zeit auslesen und auswerten
    Von MartinNN89 im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 03.09.10, 10:48
  2. Alte Router-Firmware + DHCP Liste auslesen
    Von ToXiC24 im Forum Netzwerke
    Antworten: 0
    Letzter Beitrag: 17.07.08, 22:09
  3. [VB.NET] DHCP Scope auslesen
    Von marcaurel1984 im Forum .NET Café
    Antworten: 4
    Letzter Beitrag: 15.01.08, 18:32
  4. DHCP Parameter auslesen
    Von jason84 im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 04.01.08, 10:48
  5. Mit ldap Infos auslesen
    Von kesnw im Forum PHP
    Antworten: 1
    Letzter Beitrag: 09.11.05, 08:49