vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: host changer 
Autor: sharky1986
Datum: 26.03.11 12:06

huhu,
dank für die mühe schon einmal bin grad noch dabei es richtig umzusetzen aber dank deines Ansatzes habe ich schon ein gutes stück geschafft.

Vielen Lieben Dank also für die tolle Hilfe.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

host changer 
Autor: sharky1986
Datum: 25.03.11 14:25

huhu,
leider habe ich von vb nur sehr wenig ahnung und komme derzeit einfach mit meinem host changer nicht weiter

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Dim sIP As String = "78.46.67.51"
 
        Dim sBuffer As String = _
          My.Computer.FileSystem.ReadAllText( _
          "C:\WINDOWS\system32\drivers\etc\hosts")
        Dim newstring As String = "#"
 
        If sBuffer.Contains(sIP & " " & "l2authd.lineage2.com") Then
            MsgBox("IP existiert bereits")
        Else
            My.Computer.FileSystem.CopyFile( _
    "C:\WINDOWS\system32\drivers\etc\hosts", _
    "C:\WINDOWS\system32\drivers\etc\hostsalt", _
    FileIO.UIOption.AllDialogs, _
    FileIO.UICancelOption.DoNothing)
 
            Dim file As System.IO.StreamWriter
            file = My.Computer.FileSystem.OpenTextFileWriter( _
              "C:\WINDOWS\system32\drivers\etc\hosts", True)
            file.WriteLine("")
            file.WriteLine("78.46.67.51 l2authd.lineage2.com")
            file.WriteLine("78.46.67.51 nprotect.lineage2.com")
            file.Close()
            MsgBox("Viel Spaß beim Spielen")
 
        End If
    End Sub
Das script durchsucht so die host datei ob "unsere" ip dort angegeben ist (sIP & " " & "l2authd.lineage2.com")nun sollte es aber die ganze datei durchsuchen und sobald ein eintrag mit l2authd.. erscheint soll er diesen replacen oder gar ganz entfernen und dann am ende unsere host eintragen.
Falls user bereits andere host einträge von privaten server in ihrer datei haben funktioniert mein script oben halt nicht wirklich.
Vielleicht kann mir jemand helfen wie ich das realisieren kann.

Vielen Dank schon einmal
Liebe Grüße
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: host changer 
Autor: Code_mancer
Datum: 25.03.11 19:26

So... wollte dir zwar schon vorhin schreiben, aber der Feierabend kam dazwischen ;P

Dein Code ist an sich schonmal nicht schlecht, jedoch für diesen Zweck eher leicht ungeeignet, daher geb' ich dir erstmal nur ein Paar Tipps, wie du das fummeln könntest - soll ja auch ein kleiner Lerneffekt bei rauskommen.

Zunächst einmal ist die etc/hosts eine zeilenbasierte Konfigurationsdatei. Das heisst, dass in jeder Zeile immer eine Anweisung steht - ich kann zwar nicht genau sagen, ob dies so beibehalten werden muss, aber sicher ist sicher. Außerdem wollen wir hier ja mit dem .NET Framework arbeiten, also sollten wir es auch benutzen, also statt My.Computer nehmen wir System.IO - soweit so gut.

Zuerst willst du ja ein Backup anlegen. Das machst du mit:

System.IO.File.Copy("[Quelldatei]","[Zieldatei]", True)
Dann öffnest du dir das erstellte Backup zum lesen, und die /etc/hosts schreibend.

Dim objReader As New StreamReader("[Backupdatei]")
Dim objWriter As New StreamWriter("[Datei]")
Nun gehst du durch die Datei durch und ziehst dir mit objReader.ReadLine immer nur eine Zeile in einen String, den du dann überprüfst. Liegt "l2authd.lineage2.com" drinne, dann machst du nichts, hat die Zeile nichts mit dir zu tun, dann schreibst du sie mit objWriter.Writeline in die Datei. Das durchlaufen bis zum Ende der Datei erreichst mit einer Do Loop-Schleife, die als Abbruchbedingung das Ende des Lesestreams beinhaltet.

Do Until objReader.EndOfStream
'hier die Abfrage rein
While
Bist du komplett durch, dann kommen am Ende nur noch die Zeilen, die du in der Datei haben möchtest. Fertig ist.

Jetzt bleibt noch zu überlegen, ob du vielleicht nicht noch ein bisschen komfortabler und eleganter Arbeiten möchtest. Man könnte zum Beispiel, anstatt die ungewollten Zeilen zu löschen, jene auch auskommentieren - so spart man sich die Backupdatei. Sicherlich kann man auch die gesamte Funktion eleganter oder schöner schreiben, aber für den Anfang sollte es für dich reichen.

Viel Spass beim basteln.

--------------------

Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig.
- Albert Einstein

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel