Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pensa

Como identificar a nacionalidade do IP do usuário?

Recommended Posts

Seguinte, estou fazendo um site que possui 3 idiomas, gostaria de saber se existe alguma forma de eu redirecionar o visitante direto para a versão do site com o idioma da nacionalidade dele... sites como o Google fazem isso. Tente digitar www.google.com... você será redirecionado para o site do Google Brasil.Creio que para isso o sistema deve identificar o Ip do visitante e fazer uma série de comparações... acho que os IPS brasileiros estão na faixa dos 200...Alguém tem mais informações sobre o assunto ou alguma lista de faixas de IPs e as nacionalidades que eles pertecem?Grato,Renan

Compartilhar este post


Link para o post
Compartilhar em outros sites
Isso irá retornar o LCID do servidor, não irá pegar do cliente.

 

Talvez você possa tentar algum ServerVariable, não me recordo se algum retorna o idioma que está setado o browser.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Isso irá retornar o LCID do servidor, não irá pegar do cliente.

 

Talvez você possa tentar algum ServerVariable, não me recordo se algum retorna o idioma que está setado o browser.

<{POST_SNAPBACK}>

É... realmente esse site não esclareceu muita coisa... ele fala sobre LCID que na verdade pega a nacionaliadde do servidor... eu sei como recuperar o IP do usuário, é só usar: Request.ServerVariables("REMOTE_ADDR")

mas o que eu preciso mesmo saber é a relação que existe entre IP X Nacionalidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que o google procura pelo idioma do seu pc, num é não ? Assim como um jogo o qual eu jogo, você é direcionado pro canal de chat de acordo com o idioma do seu windows e não com o idioma do jogoPor ip eu acho q num dá, pois já peguei ips bem estranhos, e quando eu conversava pela webcam c/ minha namorada (ela no japão) as vezes tinhamos ips parecidosDeve ser pelo windows do usuário memo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Google usa cookies... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

<{POST_SNAPBACK}>

??

 

Tem certeza ? Experimenta apagar todos os cookies da sua máquina, e depois entra em www.google.com, o google vai aparece já no idioma português

 

Eu acho que os cookies só são gravados quando você altera as preferências pra fora do padrão, para que sempre ao visitar este site ele venha na configuração escolhida por tu (não padrão)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho praticamente certeza que é por IP... no site que o AAlves passou mostra bem isso... veja:Pega o IP do visitante:RIPAddress = Request.ServerVariables("REMOTE_ADDR") Divide em um array caad 3 dígitos do IP: reg=split(RIPaddress,".")Se os 3 primeiros dígitos do IP for menor ou igual a 207 e maior ou igual a 204 então quer dizer que o visitante é da américa do Norte ou do Sul: if cint(reg(0))<=207 and cint(reg(0))>=204 Then region="North America or South America or Caribbean or Saharan Africa" End ifSó que ainda não tá específico o suficiente... preciso achar uma lista de faixas de IP mais específicas, do tipo: Brasil: 200, 201 e 202... coisa do tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pla logica o mais inteligente é isso de pegar, quebrar pelo split e fazer um select case, se fr 200 brazuka se for 64 americano (acho e por ae vai, se você achasse algum lugar que mostra o ip dos paises seria mão na roda, mas algo ---to acho dificil...mas boa sorte ;) Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá pessoal.o modo mais pratico de fazer isso, eh usar variaveis do servidor.uma delas, retorna o idioma do navegador do usuario.tendo o idioma do navegador, teoricamente, terá o idioma nativo do usuario que estiver acessando.beleza?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera esse é meu primeiro post aqui, o que o google faz e saber qual o indioma do navegador e redireciona para a pagina determinada.

acho que o código pode funcionar:

 

Arquivo index.asp:

 

<% ' aqui vamos ver qual o idioma do browserDim idioma, lang'aqui vemos se o idioma jà foi encontradoIf session("lang")="" thenidioma = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")'aqui vamos ver se no string contem o pt=Portugueseif instr(idioma, "pt") >0 then'aqui criamos um session variable para uso nas condições,'tambem se pode simplesmente fazer um'response.redirect para outra part do sitesession("lang")=1'no caso nao for portuguese, ele escolhe outro como defaultElsesession("lang")=0End IfEnd If %>Aqui está o script de uma condição:<% if session("lang")=1 thenresponse.write "Bemvindos a nossa pagina!"elseresponse.write "Welcome to our website"end if" %>Também temos de criar a opção de mudar a língua:<% if request("lang")<>"" then session("lang")=request("lang") %>Para podermos mudar o idioma basta fazer um link em HTML:<p><a href="index.asp?lang=1">Portuguese</a></p><p><a href= < /FONT>"index.asp?lang=0">English</a></p>Também interessa criar uma opção no caso de uma pessoa entrar no meio do site e o session ainda não ter sido definido:<% if session("lang")="" then session("lang")=0%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei mudando o idioma para uma outra lingua que foi o espanhol e quando entrei no google abriu o site em espanhol lembrando que terá que entrar no google.com e não em google.com.br, para isso é só ir em ferramentas opções da internet e em idiomas, o google faz exatamente isso verifica o idioma do navegador e redireciona para uma página especifica.

 

 

Valeu

 

MARCELO GUEDES http://forum.imasters.com.br/public/style_emoticons/default/grin.gif http://forum.imasters.com.br/public/style_emoticons/default/grin.gif http://forum.imasters.com.br/public/style_emoticons/default/grin.gif http://forum.imasters.com.br/public/style_emoticons/default/grin.gif http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

request.servervariables("ALL_HTTP") contem isso é so filtrar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

já vi sistemas, principalmente de FTP... q pegam o IP do user, e identifica de qual local ele "deveria" pertencer.. e direciona para um server mais próximo.... eles utilizam o sistema do GEOIP... (http://www.maxmind.com/app/geoip_country) q na verdade eh uma base de dados meio grandinha com ranges de IP's do mundo todo e através da busca... é possível localizar a origem do IP....o problema disso???vamos dizer, chutando alto, 97% do brasil começam entre 200 e 202... mas algumas empresas compram ranges de IP no exterior... tipo um ip 180.XX.XX.XXXX.....resultado disso.. você teria 97% de chances de acertar a origem... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

em se tratando de net isso eh uma excelente porcentagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu andei fuçando na NET e acho que encontrei o que você queria.

 

ASP

[*]<%

 

[*]Dim Lang

 

[*]

 

[*]'Pega a linguagem-padrão

 

[*]Lang Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")

 

[*]

 

[*]Response.Redirect("http://www.seusite.com.br/" & Lang)

 

[*]%>

 

No caso, você pode fazer um teste colocando um Response.Write do "Lang". No meu apareceu "pt-br". Então, você faz uma pasta para cada tipo de linguagem.

 

en, pt, pt-br, fr, jp etc.

 

 

Eu também encontrei algumas outras variáveis que podem ser usadas para outros fins.

 

HTTP_REFERER -> Pág. anterior

REQUEST_METHOD -> Meio que foi usado para transferir os dados entre as páginas.

Também há outros, tipo o QUERY_STRING que passa tudo o que vem depois da "?", com valores e campos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ve se ajuda...

'===================================================================' idioma padrão'===================================================================Dim act, lgn, pss, rps, slc Sub SubPtBr() act = "pt-BR" lgn = "usuário" pss = "senha" rps = "lembrar-se de mim" slc = "soluções" End subSub SubEn() act = "en" lgn = "username" pss = "password" rps = "remember password" slc = "solutions"End sub Sub SubEs() act = "es" lgn = "usuario" pss = "contraseña" rps = "recuerde la contraseña" slc = "soluciones"End sub if request("hl") = "" thenlng = Mid(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"),1,2) if lng = "pt" then strSQL="SELECT * FROM tb_lingua WHERE idlingua = 1" Set rsLng = banco.Execute(strSQL) call SubPtBr() elseif lng = "en" then strSQL="SELECT * FROM tb_lingua WHERE idlingua = 2" Set rsLng = banco.Execute(strSQL) call SubEn() elseif lng = "es" then strSQL="SELECT * FROM tb_lingua WHERE idlingua = 3" Set rsLng = banco.Execute(strSQL) call SubEs() end ifelseif request("hl") = "pt-BR" or request("hl") = "en" or request("hl") = "es" then if request("hl")= "pt-BR" then strSQL="SELECT * FROM tb_lingua WHERE idlingua = 1" Set rsLng = banco.Execute(strSQL) call SubPtBr() elseif request("hl") = "en" then strSQL="SELECT * FROM tb_lingua WHERE idlingua = 2" Set rsLng = banco.Execute(strSQL) call SubEn() elseif request("hl") = "es" then strSQL="SELECT * FROM tb_lingua WHERE idlingua = 3" Set rsLng = banco.Execute(strSQL) call SubEs() end ifelseresponse.Redirect("./")end ifend if

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.