Desenvolvedores web em algum momento necessitam conhecer informações sobre os visitantes de suas páginas seja: tipo de browser utilizado, resolução da tela, IP, etc.
Com este código é possível descobrir o país de origem de um endereço IP.
Junto com este código acompanha um banco de dados em Access na qual possui as informações sobre o IP e o país.
<% Option Explicit 'Declarando das Variáveis Dim ip 'Requisitando os parâmetros ip = Request.Form("ip") Public Function getPaisFromIP(ByVal ip) 'Declarando das Variáveis Dim objCon Dim objRs Dim ipLongo Dim bdAccess Dim sql 'Convertendo o IP para Longo ipLongo = convertIPToLongo(ip) 'Abrindo Conexão com o Banco de Dados bdAccess = Server.Mappath("ipPaises.mdb") Set objCon = Server.CreateObject("ADODB.Connection") objCon.open "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & bdAccess & ";" 'Query para descobrir o país do IP sql = "SELECT TBIP.*, TBPAISES.PAIS FROM TBIP INNER JOIN TBPAISES ON TBIP.SIGLA_PAIS = TBPAISES.SIGLA_PAIS WHERE " & ipLongo & " BETWEEN IP_INICIO AND IP_FIM" 'Executando a Query Set objRs = Server.CreateObject("ADODB.RecordSet") Set objRs = objCon.execute(sql) If Not objRs.EOF Then getPaisFromIP = objRs("PAIS") & " (" & objRs("SIGLA_PAIS") & ")" Else getPaisFromIP = "Não encontrado." End If 'Destruição dos objetos objRs.close objCon.close set objRs = Nothing Set objCon = Nothing End function Function convertIPToLongo (ByVal ip) Dim Cont Dim Pos Dim AntPos Dim Num If ip = "" Then convertIPToLongo = 0 Else For Cont = 1 To 4 Pos = InStr(AntPos + 1, ip, ".", 1) If Cont = 4 Then Pos = Len(ip) + 1 End If Num = Int(Mid(ip, AntPos + 1, Pos - AntPos - 1)) AntPos = Pos convertIPToLongo = ((Num Mod 256) * (256 ^ (4 - Cont))) + convertIPToLongo Next End If End Function %>DEMO : Descobrir o País a partir do IP DEMO : Descobrir o País a partir do IP
Digite o Endereço IP (xxx.xxx.xxx.xxx)