Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 44

Achar estado do usuário com base no IP

10-03-2011 17:26

Ola Pessoal, estou com uma dúvida sobre ips, estou querendo fazer um sistema de saber de que estado a pessoa ta visitando meu site, porem eu preciso saber quais são os ips de cada estado, eu to fazendo em php mesmo pegando o ip da pessoa, alguém sabe quais são as faixas de ip de cada estado tipo vai de quanto a quanto?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Ips de cada estado

10-03-2011 17:32

Não sei se é exatamente pelo IP que pega o Estado. Dá uma olhada nesse link
http://www.cgi.br/publicacoes/documentacao/regrasip.htm

Vou pesquisar sobre o assunto e posto quando tiver novidades.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 44

Achar estado do usuário com base no IP

10-03-2011 17:36

Ok, vou aguardar.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Achar estado do usuário com base no IP

10-03-2011 17:38

Achei :clap:

O script identifica Provedor, país, estado e cidade do usuário com base no IP, chama-se Geo-IP, deixo um exemplo

<?php        $ip='000.000.000.000';        print_r(geoCheckIP($ip));        //Array ( [domain] => dslb-094-219-040-096.pools.arcor-ip.net [country] => DE - Germany [state] => Hessen [town] => Erzhausen )        //Get an array with geoip-infodata        function geoCheckIP($ip)        {                //check, if the provided ip is valid                if(!filter_var($ip, FILTER_VALIDATE_IP))                {                        throw new InvalidArgumentException("IP is not valid");                }                //contact ip-server                $response=@file_get_contents('http://www.netip.de/search?query='.$ip);                if (empty($response))                {                        throw new InvalidArgumentException("Error contacting Geo-IP-Server");                }                //Array containing all regex-patterns necessary to extract ip-geoinfo from page                $patterns=array();                $patterns["domain"] = '#Domain: (.*?)&nbsp;#i';                $patterns["country"] = '#Country: (.*?)&nbsp;#i';                $patterns["state"] = '#State/Region: (.*?)<br#i';                $patterns["town"] = '#City: (.*?)<br#i';                //Array where results will be stored                $ipInfo=array();                //check response from ipserver for above patterns                foreach ($patterns as $key => $pattern)                {                        //store the result in array                        $ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : 'not found';                }                return $ipInfo;        } ?>

Fonte: http://css-tricks.com/snippets/php/get-geo-ip-information/
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 44

Achar estado do usuário com base no IP

10-03-2011 18:25

Essa variavel $ip é no caso o ip do visitante, tipo eu posso colocar nela a função de pegar o ip?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Achar estado do usuário com base no IP

10-03-2011 18:47

Sim

<?php echo $_SERVER['REMOTE_ADDR']; ?>

0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 7
Nome: Auguste Strabbs
Descrição do site: Criação de Sites by WBH
Localização: Belo Horizonte
Contato:

Achar estado do usuário com base no IP

10-03-2011 20:02

Alguém conseguiu o banco de dados com as faixas de IP ? Assim fica mais fácil pois podemos reduzir o banco exclusivamente para os Ips Brasil.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Achar estado do usuário com base no IP

10-03-2011 21:23

Acho que é o que está disponível nesse link
http://ipinfodb.com/ip_database.php
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 44

Achar estado do usuário com base no IP

11-03-2011 10:14

lol deu certo porem o resultado que ele mostra é esse

Array ( [DOMAIN] => dslb-094-219-040-096.pools.arcor-ip.net [country] => DE - Germany [state] => Hessen [town] => Flörsheim )

no código aonde é que eu posso pegar cada array? tipo o array do pais pra mim da um echo em outro lugar?

<?php        $ip='94.219.40.96';        print_r(geoCheckIP($ip));         // Array ([domain] => dslb-094-219-040-096.pools.arcor-ip.net [país] => DE - Alemanha [estado] => Hessen [cidade] => Erzhausen)        //Receba uma matriz com geoip-infodata        function geoCheckIP($ip)        {                //verificar, se o IP fornecido é válido...                if(!filter_var($ip, FILTER_VALIDATE_IP))                {                        throw new InvalidArgumentException("IP is not valid");                }                //contatar ip-servidor                $response=@file_get_contents('http://www.netip.de/search?query='.$ip);                if (empty($response))                {                        throw new InvalidArgumentException("Error contacting Geo-IP-Server");                }                //Array contendo todos regex padrões necessários para extrair GeoInfo ip da página                $patterns=array();                $patterns["domain"] = '#Domain: (.*?)&nbsp;#i';                $patterns["country"] = '#Country: (.*?)&nbsp;#i';                $patterns["state"] = '#State/Region: (.*?)<br#i';                $patterns["town"] = '#City: (.*?)<br#i';                //Matriz onde os resultados serão armazenados                $ipInfo=array();                //resposta de seleção de ipserver para os padrões acima                foreach ($patterns as $key => $pattern)                {                        //armazenar o resultado em array                        $ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : 'not found';                }                return $ipInfo;        } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Achar estado do usuário com base no IP

11-03-2011 10:36

Na chamada da função, você passa o IP do usuário

print_r(geoCheckIP($ip)); 

O scirpt, gera um return no final, que no momento está

return $ipInfo; 

Nesse retorno você está obtendo todos os valores do array. Para pegar somente um deles, você deve definir o valor que deseja, tipo

return $ipInfo['domain];

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 44

Achar estado do usuário com base no IP

11-03-2011 11:26

ok, agora deu tudo certo, só mais uma coisa, eu to testando em servidor local, mas to colocando numeros de ips na variavel $ip, mas mesmo testando em servidor local demora um pouquinho para poder carregar o script, ta certo que minha internet é a radio, mas essa demora é normal, no seu teste também demora um pouco?
tipo no caso de colocar isso em um site é bom colocar nas ultimas linhas do código né?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17513
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Achar estado do usuário com base no IP

11-03-2011 12:04

Aqui é Velox 1 Mb. To testando local e não demora muito. Lembrando que o script faz uma requisição em outro site para obter os dados.

Como seu script é para estatísticas, uma boa seria você usar cookie, para saber se o usuário já acessou a página. Se não acessou, carrega um include, para salvar essas informações. Se já acessou, não carrega o include.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 44

Achar estado do usuário com base no IP

11-03-2011 12:20

entendo vou fazer isso então
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado