Olha, realmente nao deu certo, testei em uma maquina sem JVM, e nao deu certo, testei esse codigo tbm, e funcionou:
<%
Function BinaryToString(strBinary)
Dim intCount, xBinaryToString
xBinaryToString = ""
For intCount = 1 to LenB(strBinary)
xBinaryToString = xBinaryToString & chr(AscB(MidB(strBinary,intCount,1)))
Next
BinaryToString = xBinaryToString
End Function
Set Obj = CreateObject("Msxml2.XMLHTTP")
'ip = Request.ServerVariables("REMOTE_ADDR") '"200.33.156.233"
ip = "200.176.2.10"
On Error resume Next
strURL = "
http://www.ipgeo.com.br/Rel01.asp?ip="& ip
Obj.open "GET",strURL,False
Obj.send
strURL = BinaryToString(Obj.ResponseBody)
AchaInicio = Instr(1,strURL,".")
AchaInicio2 = Cint(Instr(AchaInicio,strURL,"<td>"))+0
AchaFim = Instr(AchaInicio2,strURL,"</td>")
Diferenca = Cint(AchaFim - AchaInicio2)
cidade = Mid(strURL,AchaInicio2,Diferenca)
estado = Mid(strURL,AchaInicio2+50,Diferenca+2)
pais="BR"
If Err <> 0 Then
'se ip não for no Brasil procura internacional
On Error resume Next
strURL = "
http://www.programacionweb.net/utilidades/paisip.php?url=" & ip
obj.open "GET",strURL,False
obj.send
strURL = BinaryToString(Obj.ResponseBody)
AchaInicio = Instr(1,strURL,"banderas/")
AchaInicio2 = Cint(Instr(AchaInicio,strURL," /> "))+3
AchaFim = Instr(AchaInicio2,strURL,"</td>")
Diferenca = Cint(AchaFim - AchaInicio2)
Response.Write Mid(strURL,AchaInicio2,Diferenca)
If Err <> 0 Then
'se ocorrer erro no ip internacional exibe erro
Response.Write("erro")
end if
Else
'se ip for no Brasil mostra os dados
Response.Write(cidade&"<br>")
Response.Write(estado&"<br>")
Response.Write(pais)
End If
%>