Obtener nombre de pais y ciudad atraves de IP

23/07/2006 - 02:01 por Juan Gabriel Claure | Informe spam
Hola grupo como puedo obtener el nombre del pais y la ciudad del cliente que
esta ingresndo a mi pagina con ASP, encontre una sitio pero esta en PHP se
puede hacer un Include de paginas PHP o existe otra forma.

la pagina es la siguiente:
http://www.hostip.info/use.html

gracias de antemano
Atte. juan gabriel

Preguntas similare

Leer las respuestas

#1 Arturo Costa Delgado
23/07/2006 - 06:38 | Informe spam
Puedes hacerlo con Access pero mejores resultados te pueden dar si lo
haces con MySQL y ASP.
Mira. primero debes ir a
http://ip-to-country.webhosting.info/node/view/6 y bajar el último
archivo de datos de IP y países.

Te paso el código que uso para ese caso

findcountry_inc.asp
<%
ip=Request.ServerVariables("REMOTE_ADDR")

myIP=split(ip,".")
IPnumber=(myIp(0)*16777216)+(myIP(1)*65536)+(myIP(2)*256)+(myIP(3))

Set ConMySQL=Server.CreateObject("adodb.connection")
ConMySQL.Open "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=md_servicios;
USER=stendhal;PASSWORD1298;OPTION=3;"
Set rs=server.createobject("ADODB.Recordset")
rs.Open "Select * from ipdatabase_Countries Where IP_FROM <=" &
IPnumber & " AND IP_TO >=" & IPnumber & ";",conMySQL,2,3,1

If rs.EOF Then
country="Unknown"
Else
country=rs("COUNTRY_NAME")
ccode=rs("COUNTRY_CODE2")
End If

'you can use the country variable to display the current visitors
country of origin on the webpage: e.g. response.write "You are visiting
us from " & country

rs.Close
Set rs=Nothing
ConMySQL.Close
Set ConMySQL = Nothing
%>

counter.asp
<!--#include file="findcountry_inc.asp"-->

<%
'hitPage=Request.ServerVariables("URL")
hitPage=Request.ServerVariables ("HTTP_URL")

Set ConMySQL=Server.CreateObject("adodb.connection")
ConMySQL.Open "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=md_servicios;
USER=stendhal;PASSWORD1298;OPTION=3;"
Set rs=server.createobject("ADODB.Recordset")
'rs.Open "Select * from ipdatabase_Hits where page='" &
request.servervariables("url") & "';",conMySQL,3,3
rs.Open "Select * from ipdatabase_Hits where page='" & hitPage &
"';",conMySQL,3,3

If rs.EOF Then
rs.AddNew
rs("page")=hitPage
rs("date")=Now()
rs("date2")=Now()
rs("hits")=1
currentpagehits=1
rs.UpDate
Else
currentpagehits=rs("hits")+1
rs("hits")=currentpagehits
rs("date2")=Now()
rs.UpDate
End If
rs.Close

If country<>"Unknown" Then
MySql="Select * from ipdatabase_log"
rs.Open MySql, ConMySQL, 3, 3
rs.AddNew
rs("COUNTRY_NAME")=country
rs("page")=hitPage
rs.UpDate
rs.Close
End If

Set rs=Nothing
ConMySQL.close
Set ConMySQL=Nothing
%>

En la página que tu desees que aparezca el nombre del país usa esto

<!-- #include file="counter.asp" -->

Ud. se esta conectando desde <img src="imagenes/banderas/<%=
Response.Write(cCode) %>.png" alt="<%= Response.Write (Country) %>"
border="0">
<b><%= Response.Write (Country) %></b> [<%=
Response.Write(Request.ServerVariables("REMOTE_ADDR")) %>]

Espero que te haya sido de utilidad

ACD
Respuesta Responder a este mensaje
#2 Juan Gabriel Claure
23/07/2006 - 21:19 | Informe spam
Gracias lo tomare en cuenta, pero si quiero saber la ciudad como le hago
Otra ves gracias

Atte. juan Gabriel

"Arturo Costa Delgado" wrote in message
news:O3%
Puedes hacerlo con Access pero mejores resultados te pueden dar si lo
haces con MySQL y ASP.
Mira. primero debes ir a http://ip-to-country.webhosting.info/node/view/6
y bajar el último archivo de datos de IP y países.

Te paso el código que uso para ese caso

findcountry_inc.asp
<%
ip=Request.ServerVariables("REMOTE_ADDR")

myIP=split(ip,".")
IPnumber=(myIp(0)*16777216)+(myIP(1)*65536)+(myIP(2)*256)+(myIP(3))

Set ConMySQL=Server.CreateObject("adodb.connection")
ConMySQL.Open "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=md_servicios;
USER=stendhal;PASSWORD1298;OPTION=3;"
Set rs=server.createobject("ADODB.Recordset")
rs.Open "Select * from ipdatabase_Countries Where IP_FROM <=" & IPnumber &
" AND IP_TO >=" & IPnumber & ";",conMySQL,2,3,1

If rs.EOF Then
country="Unknown"
Else
country=rs("COUNTRY_NAME")
ccode=rs("COUNTRY_CODE2")
End If

'you can use the country variable to display the current visitors country
of origin on the webpage: e.g. response.write "You are visiting us from "
& country

rs.Close
Set rs=Nothing
ConMySQL.Close
Set ConMySQL = Nothing
%>

counter.asp
<!--#include file="findcountry_inc.asp"-->

<%
'hitPage=Request.ServerVariables("URL")
hitPage=Request.ServerVariables ("HTTP_URL")

Set ConMySQL=Server.CreateObject("adodb.connection")
ConMySQL.Open "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=md_servicios;
USER=stendhal;PASSWORD1298;OPTION=3;"
Set rs=server.createobject("ADODB.Recordset")
'rs.Open "Select * from ipdatabase_Hits where page='" &
request.servervariables("url") & "';",conMySQL,3,3
rs.Open "Select * from ipdatabase_Hits where page='" & hitPage &
"';",conMySQL,3,3

If rs.EOF Then
rs.AddNew
rs("page")=hitPage
rs("date")=Now()
rs("date2")=Now()
rs("hits")=1
currentpagehits=1
rs.UpDate
Else
currentpagehits=rs("hits")+1
rs("hits")=currentpagehits
rs("date2")=Now()
rs.UpDate
End If
rs.Close

If country<>"Unknown" Then
MySql="Select * from ipdatabase_log"
rs.Open MySql, ConMySQL, 3, 3
rs.AddNew
rs("COUNTRY_NAME")=country
rs("page")=hitPage
rs.UpDate
rs.Close
End If

Set rs=Nothing
ConMySQL.close
Set ConMySQL=Nothing
%>

En la página que tu desees que aparezca el nombre del país usa esto

<!-- #include file="counter.asp" -->

Ud. se esta conectando desde <img src="imagenes/banderas/<%=
Response.Write(cCode) %>.png" alt="<%= Response.Write (Country) %>"
border="0">
<b><%= Response.Write (Country) %></b> [<%=
Response.Write(Request.ServerVariables("REMOTE_ADDR")) %>]

Espero que te haya sido de utilidad

ACD
Respuesta Responder a este mensaje
#3 Matías Iacono
24/07/2006 - 16:01 | Informe spam
La ciudad, al igual que el país resulta una información poco probable de ser
certera.

Como te muestra el mensaje anterior, necesitas de una base de datos con una
extensa lista de IPs relacionados a países. Pero ten en cuenta que los IPs
pueden ser asignados por empresas que aleatoriamente otorgan estos accesos.

Lo que quiero decir, como para graficar la cosa, es que conozco empresas que
bajan señal de internet comprada directamente desde un proveedor Europeo, o
NorteAmericano, y estos finalmente comparten los mismos rangos de IPs.
Finalmente, si esta lista no se actualizara constantemente, simplemente
obtendrías una dirección errada.

Ejemplo muy práctico el de la página que posteaste al principio, donde, si
bien, aparece el país correcto, la ciudad es incorrecta. Y esto se debe a
que la central por la cual entra la señal al país, se encuentra en esa
población, y no en el lugar donde yo estoy.

Simplemente, lo que quiero acotar es que no confies 100% en esta
información, o no la uses para algun proceso crítico, porque esta atada a
infinidad de alternativas.

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net
Orador INETA
"Juan Gabriel Claure" escribió en el mensaje
news:%
Gracias lo tomare en cuenta, pero si quiero saber la ciudad como le hago
Otra ves gracias

Atte. juan Gabriel

"Arturo Costa Delgado" wrote in message
news:O3%
Puedes hacerlo con Access pero mejores resultados te pueden dar si lo
haces con MySQL y ASP.
Mira. primero debes ir a http://ip-to-country.webhosting.info/node/view/6
y bajar el último archivo de datos de IP y países.

Te paso el código que uso para ese caso

findcountry_inc.asp
<%
ip=Request.ServerVariables("REMOTE_ADDR")

myIP=split(ip,".")
IPnumber=(myIp(0)*16777216)+(myIP(1)*65536)+(myIP(2)*256)+(myIP(3))

Set ConMySQL=Server.CreateObject("adodb.connection")
ConMySQL.Open "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=md_servicios;
USER=stendhal;PASSWORD1298;OPTION=3;"
Set rs=server.createobject("ADODB.Recordset")
rs.Open "Select * from ipdatabase_Countries Where IP_FROM <=" & IPnumber
& " AND IP_TO >=" & IPnumber & ";",conMySQL,2,3,1

If rs.EOF Then
country="Unknown"
Else
country=rs("COUNTRY_NAME")
ccode=rs("COUNTRY_CODE2")
End If

'you can use the country variable to display the current visitors country
of origin on the webpage: e.g. response.write "You are visiting us from "
& country

rs.Close
Set rs=Nothing
ConMySQL.Close
Set ConMySQL = Nothing
%>

counter.asp
<!--#include file="findcountry_inc.asp"-->

<%
'hitPage=Request.ServerVariables("URL")
hitPage=Request.ServerVariables ("HTTP_URL")

Set ConMySQL=Server.CreateObject("adodb.connection")
ConMySQL.Open "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=md_servicios;
USER=stendhal;PASSWORD1298;OPTION=3;"
Set rs=server.createobject("ADODB.Recordset")
'rs.Open "Select * from ipdatabase_Hits where page='" &
request.servervariables("url") & "';",conMySQL,3,3
rs.Open "Select * from ipdatabase_Hits where page='" & hitPage &
"';",conMySQL,3,3

If rs.EOF Then
rs.AddNew
rs("page")=hitPage
rs("date")=Now()
rs("date2")=Now()
rs("hits")=1
currentpagehits=1
rs.UpDate
Else
currentpagehits=rs("hits")+1
rs("hits")=currentpagehits
rs("date2")=Now()
rs.UpDate
End If
rs.Close

If country<>"Unknown" Then
MySql="Select * from ipdatabase_log"
rs.Open MySql, ConMySQL, 3, 3
rs.AddNew
rs("COUNTRY_NAME")=country
rs("page")=hitPage
rs.UpDate
rs.Close
End If

Set rs=Nothing
ConMySQL.close
Set ConMySQL=Nothing
%>

En la página que tu desees que aparezca el nombre del país usa esto

<!-- #include file="counter.asp" -->

Ud. se esta conectando desde <img src="imagenes/banderas/<%=
Response.Write(cCode) %>.png" alt="<%= Response.Write (Country) %>"
border="0">
<b><%= Response.Write (Country) %></b> [<%=
Response.Write(Request.ServerVariables("REMOTE_ADDR")) %>]

Espero que te haya sido de utilidad

ACD




Respuesta Responder a este mensaje
#4 Juan Gabriel Claure
26/07/2006 - 03:37 | Informe spam
Muchas gracias, la info es solo para poder ver de donde se esta accesediebdo
al sitio solo de referencias no es critica, pero muchas gracias por los
ocnsejos

Atte Juan Gabriel

"Matías Iacono" wrote in message
news:
La ciudad, al igual que el país resulta una información poco probable de
ser certera.

Como te muestra el mensaje anterior, necesitas de una base de datos con
una extensa lista de IPs relacionados a países. Pero ten en cuenta que los
IPs pueden ser asignados por empresas que aleatoriamente otorgan estos
accesos.

Lo que quiero decir, como para graficar la cosa, es que conozco empresas
que bajan señal de internet comprada directamente desde un proveedor
Europeo, o NorteAmericano, y estos finalmente comparten los mismos rangos
de IPs. Finalmente, si esta lista no se actualizara constantemente,
simplemente obtendrías una dirección errada.

Ejemplo muy práctico el de la página que posteaste al principio, donde, si
bien, aparece el país correcto, la ciudad es incorrecta. Y esto se debe a
que la central por la cual entra la señal al país, se encuentra en esa
población, y no en el lugar donde yo estoy.

Simplemente, lo que quiero acotar es que no confies 100% en esta
información, o no la uses para algun proceso crítico, porque esta atada a
infinidad de alternativas.

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net
Orador INETA
"Juan Gabriel Claure" escribió en el mensaje
news:%
Gracias lo tomare en cuenta, pero si quiero saber la ciudad como le hago
Otra ves gracias

Atte. juan Gabriel

"Arturo Costa Delgado" wrote in message
news:O3%
Puedes hacerlo con Access pero mejores resultados te pueden dar si lo
haces con MySQL y ASP.
Mira. primero debes ir a
http://ip-to-country.webhosting.info/node/view/6 y bajar el último
archivo de datos de IP y países.

Te paso el código que uso para ese caso

findcountry_inc.asp
<%
ip=Request.ServerVariables("REMOTE_ADDR")

myIP=split(ip,".")
IPnumber=(myIp(0)*16777216)+(myIP(1)*65536)+(myIP(2)*256)+(myIP(3))

Set ConMySQL=Server.CreateObject("adodb.connection")
ConMySQL.Open "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=md_servicios;
USER=stendhal;PASSWORD1298;OPTION=3;"
Set rs=server.createobject("ADODB.Recordset")
rs.Open "Select * from ipdatabase_Countries Where IP_FROM <=" & IPnumber
& " AND IP_TO >=" & IPnumber & ";",conMySQL,2,3,1

If rs.EOF Then
country="Unknown"
Else
country=rs("COUNTRY_NAME")
ccode=rs("COUNTRY_CODE2")
End If

'you can use the country variable to display the current visitors
country of origin on the webpage: e.g. response.write "You are visiting
us from " & country

rs.Close
Set rs=Nothing
ConMySQL.Close
Set ConMySQL = Nothing
%>

counter.asp
<!--#include file="findcountry_inc.asp"-->

<%
'hitPage=Request.ServerVariables("URL")
hitPage=Request.ServerVariables ("HTTP_URL")

Set ConMySQL=Server.CreateObject("adodb.connection")
ConMySQL.Open "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=md_servicios;
USER=stendhal;PASSWORD1298;OPTION=3;"
Set rs=server.createobject("ADODB.Recordset")
'rs.Open "Select * from ipdatabase_Hits where page='" &
request.servervariables("url") & "';",conMySQL,3,3
rs.Open "Select * from ipdatabase_Hits where page='" & hitPage &
"';",conMySQL,3,3

If rs.EOF Then
rs.AddNew
rs("page")=hitPage
rs("date")=Now()
rs("date2")=Now()
rs("hits")=1
currentpagehits=1
rs.UpDate
Else
currentpagehits=rs("hits")+1
rs("hits")=currentpagehits
rs("date2")=Now()
rs.UpDate
End If
rs.Close

If country<>"Unknown" Then
MySql="Select * from ipdatabase_log"
rs.Open MySql, ConMySQL, 3, 3
rs.AddNew
rs("COUNTRY_NAME")=country
rs("page")=hitPage
rs.UpDate
rs.Close
End If

Set rs=Nothing
ConMySQL.close
Set ConMySQL=Nothing
%>

En la página que tu desees que aparezca el nombre del país usa esto

<!-- #include file="counter.asp" -->

Ud. se esta conectando desde <img src="imagenes/banderas/<%=
Response.Write(cCode) %>.png" alt="<%= Response.Write (Country) %>"
border="0">
<b><%= Response.Write (Country) %></b> [<%=
Response.Write(Request.ServerVariables("REMOTE_ADDR")) %>]

Espero que te haya sido de utilidad

ACD








email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida