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")