IP Locator
Ich zeige Euch, wie ihr eine Klasse erstellen könnt mit welcher ihr IP Adressen lokalisieren könnt (Land, Region, Stadt, Koordinaten, etc.)
Im Grunde genommen habe ich in einer Klassenbibliothek 2 Klassen.
Eine, die die Infos ausliest und eine zweite, die ein Objekt darstellt, in welchem die Daten schön gespeichert werden.
Also:
Klasse zum Auslesen der Informationen
Nun brauchen wir noch die Klasse "GeoData" wo die Informationen gespeichert werden und ausgelesen werden können:
Das Ganze als DLL erstellen (logisch).
Dann in einem WinForm Projekt einen Verweis auf die DLL setzen.
Möglicher Aufruf:
Vielen Dank fürs Lesen und für die Feedbacks und Rückmeldungen, die hoffentlich kommen werden
Gruss
Pascal
Ich zeige Euch, wie ihr eine Klasse erstellen könnt mit welcher ihr IP Adressen lokalisieren könnt (Land, Region, Stadt, Koordinaten, etc.)
Im Grunde genommen habe ich in einer Klassenbibliothek 2 Klassen.
Eine, die die Infos ausliest und eine zweite, die ein Objekt darstellt, in welchem die Daten schön gespeichert werden.
Also:
Klasse zum Auslesen der Informationen
VB.NET-Quellcode
- Public Class GeoInfo
- Dim _ip As String
- #Region "Methoden"
- ''' <summary>
- ''' Ermittelt die derzeitige IP Adresse
- ''' </summary>
- ''' <returns>IP Adresse</returns>
- ''' <remarks></remarks>
- Public Function GetCurrentIP() As String
- Dim WebC As New Net.WebClient
- Return WebC.DownloadString("http://www.ip-adress.com/ip/")
- End Function
- ''' <summary>
- ''' Lokalisiert die angegebene IP Adresse
- ''' </summary>
- ''' <param name="IP">Ip, die lokalisiert werden soll</param>
- ''' <returns>Ein GeoData-Objekt, welches alle IP Informationen enthält</returns>
- ''' <remarks></remarks>
- Public Function Locate(ByVal IP As String) As GeoData
- _ip = IP
- Dim WB As New Windows.Forms.WebBrowser
- WB.Navigate("http://whatismyipaddress.com/ip/" & _ip)
- While WB.ReadyState <> Windows.Forms.WebBrowserReadyState.Complete
- System.Windows.Forms.Application.DoEvents()
- End While
- 'Return GData
- Try
- Dim country As String = WB.Document.GetElementsByTagName("table").Item(1).GetElementsByTagName("td").Item(0).InnerText
- Dim region As String = WB.Document.GetElementsByTagName("table").Item(1).GetElementsByTagName("td").Item(1).InnerText
- Dim city As String = WB.Document.GetElementsByTagName("table").Item(1).GetElementsByTagName("td").Item(2).InnerText
- Dim breite As String = WB.Document.GetElementsByTagName("table").Item(1).GetElementsByTagName("td").Item(3).InnerText
- Dim länge As String = WB.Document.GetElementsByTagName("table").Item(1).GetElementsByTagName("td").Item(4).InnerText
- Dim ISP As String = WB.Document.GetElementsByTagName("table").Item(0).GetElementsByTagName("td").Item(1).InnerText
- Dim Host As String = WB.Document.GetElementsByTagName("table").Item(0).GetElementsByTagName("td").Item(0).InnerText
- Dim GData As New GeoData(country, city, region, _ip, ISP, Host, breite, länge)
- Return GData
- Catch ex As Exception
- End Try
- End Function
- #End Region
- End Class
Nun brauchen wir noch die Klasse "GeoData" wo die Informationen gespeichert werden und ausgelesen werden können:
VB.NET-Quellcode
- Public Class GeoData
- #Region "Variablen"
- Dim _mCountry As String
- Dim _mCity As String
- Dim _mISP As String
- Dim _mRegion As String
- Dim _ip As String
- Dim _host As String
- Dim _breitengrad As String
- Dim _längengrad As String
- #End Region
- Public Sub New(ByVal Country As String, ByVal City As String, ByVal Region As String, ByVal IP As String, ByVal ISP As String, ByVal Host As String, ByRef Breitengrad As String, ByVal Längengrad As String)
- _mCity = City
- _mCountry = Country
- _mISP = ISP
- _mRegion = Region
- _ip = IP
- _host = Host
- _breitengrad = breitengrad
- _längengrad = längengrad
- End Sub
- #Region "Properties"
- Public ReadOnly Property Country() As String
- Get
- Return _mCountry
- End Get
- End Property
- Public ReadOnly Property City() As String
- Get
- Return _mCity
- End Get
- End Property
- Public ReadOnly Property Region() As String
- Get
- Return _mRegion
- End Get
- End Property
- Public ReadOnly Property ISP() As String
- Get
- Return _mISP
- End Get
- End Property
- Public ReadOnly Property IP() As String
- Get
- Return _ip
- End Get
- End Property
- Public ReadOnly Property Host() As String
- Get
- Return _host
- End Get
- End Property
- Public ReadOnly Property Breitengrad() As String
- Get
- Return _breitengrad
- End Get
- End Property
- Public ReadOnly Property Längengrad() As String
- Get
- Return _längengrad
- End Get
- End Property
- #End Region
- End Class
Das Ganze als DLL erstellen (logisch).
Dann in einem WinForm Projekt einen Verweis auf die DLL setzen.
Möglicher Aufruf:
VB.NET-Quellcode
- Dim Locator As New IPLocatorLib.GeoInfo
- Dim newData As IPLocatorLib.GeoData = Locator.Locate(Locator.GetCurrentIP)
- MessageBox.Show("Überprüfte IP: " & newData.IP & vbCrLf & "Land: " & newData.Country & vbCrLf _
- & "Region: " & newData.Region & vbCrLf & "Stadt: " & newData.City & vbCrLf & "Host: " & newData.Host & vbCrLf _
- & "ISP: " & newData.ISP & vbCrLf & "Längengrade: " & newData.Längengrad & vbCrLf & "Breitengrade: " & newData.Breitengrad)
Vielen Dank fürs Lesen und für die Feedbacks und Rückmeldungen, die hoffentlich kommen werden
Gruss
Pascal