none
IP Geolocalizzazione RRS feed

  • Domanda

  • Ciao Ragazzi,

    mi sono cimentato nello sviluppo di un pagina web asp.net che contenga i dati di geolocalizzazione del navigante, facendo un po' di ricerche ho buttato giù il codice sotto riportato.

    ho 2 problemi, vorrei che la variabile ip nel Page_Load rilasciasse l'indirizzo del navigante automaticamente come vedete nel codice ora è un ip statico.

    Di per se al caricamento funziona il codice ma le 2 colonne IP ADDRESS e COUNTRY non vengono convertite correttamente vedi screen sotto.

    Potete darmi una mano come risolvere questi 2 problemi.

    Grazie in anticipo.

    Ciao

    Luigi.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    
            Dim ip As String = "8.8.8.8"
            Me.IP2Location(ip)
    
        End Sub
        Private Sub IP2Location(ByVal myip As String)
    
            Dim address As IPAddress = Nothing
    
            If IPAddress.TryParse(myip, address) Then
                Dim addrBytes As Byte() = address.GetAddressBytes()
                Me.LittleEndian(addrBytes)
                Dim ipno As UInt32 = 0
                ipno = BitConverter.ToUInt32(addrBytes, 0)
                Dim conn As String = ConfigurationManager.ConnectionStrings("ip2location").ConnectionString
                Using con As New SqlConnection(conn)
                    Using cmd As New SqlCommand("SELECT TOP 1 * FROM ip2location_db11 WHERE ip_to >= '" & ipno.ToString() & "'")
                        Using sda As New SqlDataAdapter()
                            cmd.Connection = con
                            sda.SelectCommand = cmd
                            Using dt As New DataTable()
                                sda.Fill(dt)
                                gvLocation.DataSource = dt
                                gvLocation.DataBind()
                            End Using
                        End Using
                    End Using
                End Using
    
            End If
        End Sub
    
        Private Sub LittleEndian(ByRef byteArr As Byte())
            If BitConverter.IsLittleEndian Then
                Dim byteList As List(Of Byte) = New List(Of Byte)(byteArr)
                byteList.Reverse()
                byteArr = byteList.ToArray()
            End If
        End Sub

     

    mercoledì 27 gennaio 2021 14:21

Tutte le risposte

  • Salve glider77,

    Una domanda: Da dove prendi i dati per la geolocalizzazione - Google o?

    Grazie in anticipo.


    Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.

    mercoledì 27 gennaio 2021 14:28
    Moderatore
  • Ciao,

    ho scaricato il cvs gratuito da Iplocation LITE ed ho eseguito una BULK in sql server.

    Grazie

    Luigi.

    mercoledì 27 gennaio 2021 14:52
  • Ciao Ragazzi,

    mi sono cimentato nello sviluppo di un pagina web asp.net che contenga i dati di geolocalizzazione del navigante, facendo un po' di ricerche ho buttato giù il codice sotto riportato.

    ho 2 problemi, vorrei che la variabile ip nel Page_Load rilasciasse l'indirizzo del navigante automaticamente come vedete nel codice ora è un ip statico.

    Di per se al caricamento funziona il codice ma le 2 colonne IP ADDRESS e COUNTRY non vengono convertite correttamente vedi screen sotto.

    Potete darmi una mano come risolvere questi 2 problemi.

    Grazie in anticipo.

    Ciao

    Luigi.

    Ciao Luigi,
    per ottenere l'indirizzo ip del client potresti utilizzare questo:

    Dim ipClient as String = Request.UserHostAddress

    Per il secondo problema invece non vedendo parte del codice non ti saprei dire.
    Quelle colonne di che tipo sono nel db?
    Potresti condividere una parte di questo csv?

    Saluti


    Paolo Pranzo

    giovedì 28 gennaio 2021 12:14
  • Ciao Paolo,

    sotto ti mostro screen con qualche riga del file CVS successivamente la tabella sql che contiene i dati importati dal CVS, il contenuto delle righe è di circa 2.800.000 righe.

    Grazie.

    Luigi.

    SQL e CVS

    giovedì 28 gennaio 2021 17:33