ip2location всегда печатает «Неверный путь к базе данных». Как вызвать файл базы данных?

Чтобы получить 2 буквы страны с IP-адреса, мне посоветовали использовать эту базу данных bin https://lite.ip2location.com/database-ip-country-region-city

Но где бы я ни помещал их файл базы данных, я всегда получаю это сообщение об ошибке:

      Invalid Database Path.

Я предполагаю, что ошибка заключается в этой строке:

      oIP2Location.IPDatabasePath = "IP2LOCATION-LITE-DB1.BIN"

Вот часть Кодекса. Как правильно указать путь к файлу BIN?

          Private Sub Query(ByVal strIPAddress As String)
    Dim oIPResult As New IP2Location.IPResult
    Dim oIP2Location As New IP2Location.Component
    Try
        If strIPAddress <> "" Then
            oIP2Location.IPDatabasePath = "IP2LOCATION-LITE-DB1.BIN" ' only IPv4

            oIPResult = oIP2Location.IPQuery(strIPAddress)
            Select Case oIPResult.Status
                Case "OK"
                    Me.txtIPResult.Text += "IP Address: " & oIPResult.IPAddress & vbNewLine
                    Me.txtIPResult.Text += "City: " & oIPResult.City & vbNewLine
                    Me.txtIPResult.Text += "Country Code: " & oIPResult.CountryShort & vbNewLine
                    Me.txtIPResult.Text += "Country Name: " & oIPResult.CountryLong & vbNewLine
                    Me.txtIPResult.Text += "Postal Code: " & oIPResult.ZipCode & vbNewLine
                    Me.txtIPResult.Text += "Domain Name: " & oIPResult.DomainName & vbNewLine
                    Me.txtIPResult.Text += "ISP Name: " & oIPResult.InternetServiceProvider & vbNewLine
                    Me.txtIPResult.Text += "Latitude: " & oIPResult.Latitude & vbNewLine
                    Me.txtIPResult.Text += "Longitude: " & oIPResult.Longitude & vbNewLine
                    Me.txtIPResult.Text += "Region: " & oIPResult.Region & vbNewLine
                    Me.txtIPResult.Text += "Time Zone: " & oIPResult.TimeZone & vbNewLine
                    Me.txtIPResult.Text += "Net Speed: " & oIPResult.NetSpeed & vbNewLine
                    Me.txtIPResult.Text += "IDD Code: " & oIPResult.IDDCode & vbNewLine
                    Me.txtIPResult.Text += "Area Code: " & oIPResult.AreaCode & vbNewLine
                    Me.txtIPResult.Text += "Weather Station Code: " & oIPResult.WeatherStationCode & vbNewLine
                    Me.txtIPResult.Text += "Weather Station Name: " & oIPResult.WeatherStationName & vbNewLine
                    Me.txtIPResult.Text += "MCC: " & oIPResult.MCC & vbNewLine
                    Me.txtIPResult.Text += "MNC: " & oIPResult.MNC & vbNewLine
                    Me.txtIPResult.Text += "Mobile Brand: " & oIPResult.MobileBrand & vbNewLine
                    Me.txtIPResult.Text += "Elevation: " & oIPResult.Elevation & vbNewLine
                    Me.txtIPResult.Text += "Usage Type: " & oIPResult.UsageType & vbNewLine
                Case "EMPTY_IP_ADDRESS"
                    Response.Write("IP Address cannot be blank.")
                Case "INVALID_IP_ADDRESS"
                    Response.Write("Invalid IP Address.")
                Case "MISSING_FILE"
                    Response.Write("Invalid Database Path.")
            End Select
        Else
            Response.Write("IP Address cannot be blank.")
        End If
    Catch ex As Exception
        Response.Write(ex.Message)
    Finally
        oIPResult = Nothing
        oIP2Location = Nothing
    End Try
End Sub

1 ответ

У вас есть 2 варианта указания пути к файлу BIN.

Либо используйте полный путь к файлу BIN.

      oIP2Location.IPDatabasePath = "c:\myfolder\mysubfolder\IP2LOCATION-LITE-DB1.BIN"

Или используйте относительный путь к корневой папке веб-сайта и вызовите MapPath, чтобы получить полный путь. Ниже приведен пример для файла BIN внутри папки bin.

      oIP2Location.IPDatabasePath = Server.MapPath("bin\IP2LOCATION-LITE-DB1.BIN")
Другие вопросы по тегам