hi,
ich möchte gern die öffentliche IP adresse auslesen. habe schon einiges probiert aber nichts hat wrklich funktioniert.aus einem älteren Projekt von mir wo ich bereits die öffentliche ip auslesen kann(funktioniert einwandfrei). wollte ich das ganz nun auf mein derzeitiges Projekt übertragen. nur leider funktioniert das ganze in VS 2017 nicht mehr. unter vS 2012 funktioniert alles super.
ich habe eine klasse mit dem namen (EXT_IP) erstellt den code hatte ich kopiert und in meinem jetzigen Projekt die klasse erstellt und alles eingfügt. aber es funktioniert nicht.
hier die klasse EXT_IP:
hier der restliche code dazu:
wie gesagt in VS2012 funktioniert alles einwandfrei aber in VS 2017 funktioniert das ganze nicht mehr.
hier die labels mit den ip adressen.
es scheitert an der klasse (ComputerInfo) in vs2017 ist diese klasse anders als bei vs 2012
ich möchte gern die öffentliche IP adresse auslesen. habe schon einiges probiert aber nichts hat wrklich funktioniert.aus einem älteren Projekt von mir wo ich bereits die öffentliche ip auslesen kann(funktioniert einwandfrei). wollte ich das ganz nun auf mein derzeitiges Projekt übertragen. nur leider funktioniert das ganze in VS 2017 nicht mehr. unter vS 2012 funktioniert alles super.
ich habe eine klasse mit dem namen (EXT_IP) erstellt den code hatte ich kopiert und in meinem jetzigen Projekt die klasse erstellt und alles eingfügt. aber es funktioniert nicht.
hier die klasse EXT_IP:
VB.NET-Quellcode
- Imports System.Net
- Public Class EXT_IP
- ''' <summary>
- ''' Die Sericeadresse, von der die IP abgefragt wird.
- ''' </summary>
- Public Property ServiceAddress As Uri = New Uri("http://checkip.dyndns.com/")
- Private WithEvents _wClient As WebClient
- ''' <summary>
- ''' Wird ausgelöst, wenn die Abfrage der IP erfolgreich war.
- ''' </summary>
- Public Event IPUpdateCompleted As EventHandler(Of IPAddress)
- ''' <summary>
- ''' Wird ausgelöst, wenn bei der Abfrage der IP ein Fehler auftritt.
- ''' </summary>
- Public Event IPUpdateError As EventHandler
- ''' <summary>
- ''' Erzeugt eine neue Instanz der Klasse PublicIP
- ''' </summary>
- Public Sub New()
- _wClient = New WebClient()
- _wClient.Proxy = Nothing
- End Sub
- ''' <summary>
- ''' Startet die Abfrage der öffentlichen IP.
- ''' </summary>
- Public Sub GetIP()
- _wClient.DownloadStringAsync(ServiceAddress)
- End Sub
- Private Sub _wClient_DownloadStringCompleted(sender As Object, e As DownloadStringCompletedEventArgs) Handles _wClient.DownloadStringCompleted
- If e.Error Is Nothing Then
- Dim ip As IPAddress = Nothing
- Dim ipString As String = e.Result.Split(New String() {": ", "</"}, StringSplitOptions.RemoveEmptyEntries)(3)
- If IPAddress.TryParse(ipString, ip) Then
- OnIPUpdateComplete(ip)
- Else
- OnIPUpdateError()
- End If
- Else
- OnIPUpdateError()
- End If
- End Sub
- Private Sub OnIPUpdateComplete(ByVal ip As IPAddress)
- RaiseEvent IPUpdateCompleted(Me, ip)
- End Sub
- Private Sub OnIPUpdateError()
- RaiseEvent IPUpdateError(Me, EventArgs.Empty)
- End Sub
- End Class
hier der restliche code dazu:
VB.NET-Quellcode
- Private WithEvents _ip As New EXT_IP()
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
- _ip.GetIP()
- lblintern.Text = ComputerInfo.Info.Network.get_LocalIP
- lblextern.Text = ComputerInfo.Info.Network.get_AdapterServiceName
- End Sub
- Private Sub _ip_IPUpdateCompleted(sender As Object, e As Net.IPAddress) Handles _ip.IPUpdateCompleted
- Me.lblextern.Text = e.ToString()
- End Sub
- Private Sub _ip_IPUpdateError(sender As Object, e As EventArgs) Handles _ip.IPUpdateError
- Me.lblextern.Text = "Bei der Abfrage der öffentlichen IP trat ein Fehler auf."
- End Sub
wie gesagt in VS2012 funktioniert alles einwandfrei aber in VS 2017 funktioniert das ganze nicht mehr.
hier die labels mit den ip adressen.
es scheitert an der klasse (ComputerInfo) in vs2017 ist diese klasse anders als bei vs 2012
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „user2100“ ()