Externe und Interne IP auslesen

    • VB.NET

    Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Cr4ckY.

      Externe und Interne IP auslesen

      Hiho,

      da hier schon ein paar mal gefragt wurde wie man denn seine Interne bzw. Externe Ip auslesen kann will ich hier mal ein kleines Beispiel geben:

      Für die Interne IP: (Hier wird ausgelesen und aufgelistet)
      Als erstes müssen wir System.Net importieren:

      VB.NET-Quellcode

      1. Imports System.Net


      Und danach der eig. Prozess des auslesens und auflistens:

      VB.NET-Quellcode

      1. Dim Addresslist() As IPAddress = DNS.GetHostByName(Dns.GetHostName()).Addresslist
      2. Dim IPs As IPAddress
      3. ListBox1.Items.Clear
      4. For Each IPs in Addresslist
      5. ListBox1.Items.Add(IPs.ToString)
      6. Next IPs
      7. End Sub


      Den Code packt ihr einfach in einen Button oder wenn ihr eine dauerhafte Überprüfung haben wollt in einen Timer bzw. Schleife.


      So und dann noch für die Externe IP:

      VB.NET-Quellcode

      1. Dim req As HttpWebRequest = WebRequest.Create("http://whatismyip.com/automation/n09230945.asp")
      2. Dim res As HttpWebResponse = req.GetResponse()
      3. Dim Str As Stream = res.GetResponseStream()
      4. Dim sr As StreamReader = New StreamReader(Stream)
      5. MsgBox(sr.readtoend())


      Wie bei dem ersten einfach in nen Button packen und ihr bekommt eine MsgBox mit eurer IP.
      Falls ihr ne dauerhafte Überprüfung der Externen Ip haben wollt könnt ihr den Code ja einfach ein bisschen abändern. (siehe Interne/Lokale IP)

      Die beiden Codes sollten eig. verständlich sein aber falls sie jmd. nicht versteht einfach eine PN schreiben oder direkt im Thread fragen.

      mfg

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „pAbst0“ ()

      Erstens, wurden die Imports zum IO vergessen, des Zweiten ist der Code nicht Korrekt. Korrekt müsste es so heißen:

      VB.NET-Quellcode

      1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2. Dim req As HttpWebRequest = WebRequest.Create("http://whatismyip.com/automation/n09230945.asp")Dim res As HttpWebResponse = req.GetResponse()
      3. Dim Str As Stream = res.GetResponseStream()Dim sr As StreamReader = New StreamReader(Str)
      4. MsgBox(sr.ReadToEnd())End Sub

      powerprogger schrieb:

      Erstens, wurden die Imports zum IO vergessen, des Zweiten ist der Code nicht Korrekt. Korrekt müsste es so heißen:

      VB.NET-Quellcode

      1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2. Dim req As HttpWebRequest = WebRequest.Create("http://whatismyip.com/automation/n09230945.asp")Dim res As HttpWebResponse = req.GetResponse()
      3. Dim Str As Stream = res.GetResponseStream()Dim sr As StreamReader = New StreamReader(Str)
      4. MsgBox(sr.ReadToEnd())End Sub
      das ist genausowenig korrekt.

      VB.NET-Quellcode

      1. Dim req As HttpWebRequest = CType(WebRequest.Create("http://whatismyip.com/automation/n09230945.asp"), HttpWebRequest)
      2. Dim res As HttpWebResponse = req.GetResponse()
      3. Using sr New StreamReader(res.GetResponseStream())
      4. MsgBox(sr.ReadToEnd())
      5. End Using
      Ok, eine Frage ^^

      Wieso sollte:

      VB.NET-Quellcode

      1. Dim req As HttpWebRequest = WebRequest.Create("http://whatismyip.com/automation/n09230945.asp")
      2. Dim res As HttpWebResponse = req.GetResponse()
      3. Dim Str As Stream = res.GetResponseStream()
      4. Dim sr As StreamReader = New StreamReader(Stream)
      5. MsgBox(sr.readtoend())


      nicht korrekt sein? Funktioniert doch wie es soll. (Bei mir zumindest)
      Wieso macht man es immer so kompliiziert, also ich lese mit 2 Zeilen Code die IP-Adresse aus.

      VB.NET-Quellcode

      1. Dim locWebClient As New WebClient()
      2. Dim locIP As String = Nothing
      3. locIP = locWebClient.DownloadString("http://whatismyip.com/automation/n09230945.asp")
      ich benutz den code

      VB.NET-Quellcode

      1. Imports System.Net
      2. Public Class Form1
      3. Private Sub Button1_Click(ByVal sender As System.Object, _
      4. ByVal e As System.EventArgs) Handles Button1.Click
      5. Dim Addresslist() As IPAddress = _
      6. DNS.GetHostByName(Dns.GetHostName()).Addresslist
      7. Dim IPs As IPAddress
      8. ' alle IP-Adressen auflisten
      9. ListBox1.Items.Clear
      10. For Each IPs in Addresslist
      11. ListBox1.Items.Add(IPs.ToString)
      12. Next IPs
      13. End Sub

      user44 schrieb:

      ich benutz den code

      VB.NET-Quellcode

      1. Imports System.Net
      2. Public Class Form1
      3. Private Sub Button1_Click(ByVal sender As System.Object, _
      4. ByVal e As System.EventArgs) Handles Button1.Click
      5. Dim Addresslist() As IPAddress = _
      6. DNS.GetHostByName(Dns.GetHostName()).Addresslist
      7. Dim IPs As IPAddress
      8. ' alle IP-Adressen auflisten
      9. ListBox1.Items.Clear
      10. For Each IPs in Addresslist
      11. ListBox1.Items.Add(IPs.ToString)
      12. Next IPs
      13. End Sub

      Bei mir kommt da eine Fehlermeldung, dass die Public Shared Function GetHostByName(hostname As String) veraltet ist.
      Gibt es dafür also eine "neuere" Methode?