SlideShare a Scribd company logo
1 of 21
Implementando Rotinas
                  de Geolocalização




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 1 / 21
Quem?!

    Er Galvão Abbott trabalha há mais de 16 anos
desenvolvendo sistemas e aplicações com interface web.
Palestra em eventos, dá cursos em diversas instituições e
é o Diretor da PHP Conference Brasil, o principal evento de PHP
da América Latina.

    Especializou-se em segurança de aplicações web,
abordando o tema em uma época quando isso ainda era raro no
Brasil. Trabalhou com diversas empresas de grande parte, tanto
nacionais como internacionais.

    É o fundador e líder do GU PHPBR, Grupo de Usuários
de abrangência nacional, que hoje conta com mais de 1.200
usuários cadastrados.

Site: http://www.galvao.eti.br/
Twitter: @galvao
Slides e Documentos: http://slideshare.net/ergalvao




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 2 / 21
Objetivo



    Demonstrar conceitos e detalhes – tanto técnicos quanto não-técnicos – envolvidos
na implementação de rotinas de Geolocalização em aplicações web. Abordaremos os
seguintes tópicos:

→ Introdução
→ O projeto
→ ISOs envolvidas
→ Sobre IPv4 e IPv6
→ Falhas conceituais
→ Falhas inerentes




 CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 3 / 21
Introdução



     Existem três formas de se implementar uma rotina de Geolocalização em uma
aplicação:

→ Utilização de Posicionamento Global por Satélite (GPS)
→ Posicionamento do dispositivo conectado (Triangulação por torres de transmissão)
→ Análise de endereço IP (GeoIP)

    Embora as duas primeiras ofereçam uma grande vantagem na precisão, a terceira
se aplica a qualquer dispositivo, móvel ou não, e será o foco desta apresentação.




 CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 4 / 21
Introdução - Maxmind



     A Maxmind é uma empresa que fornece bases de dados de GeoIP. Foi escolhida
por possuir uma precisão razoável e por oferecer versões gratuitas de suas bases de
dados, além de uma API pronta em PHP e diversas outras linguagens.

Principais vantagens:

↑ Precisão de 99.8% (nível de país) e de 72% (nível de cidade no caso do Brasil)
↑ APIs prontas para C, C#, Java, Perl e PHP.
↑ Atualizado mensalmente
↑ Formato binário para uso com a API ou CSV para importação direta

Principais desvantagens:

↓ Suporte confuso para PHP (“port” para PHP5, fork “melhorado”)
↓ Compatibilidade limitada com IPv6
↓ Divisão de dados em dois arquivos CSV




 CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 5 / 21
O Projeto




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 6 / 21
O Projeto




                                         X
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 7 / 21
O Projeto




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 8 / 21
O Projeto




                                         X
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 9 / 21
Por que não pode ser simples?




  X Problemas de performance
  X Problemas em caso de imprecisão da base de dados
  X Não é renovável
  X Apenas uma fonte de pesquisa




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 10 / 21
Objetivos




a   Performance, maior inteligência na localização
a   Precisão, mesmo sem automação total
a   Renovável, “correção automatizada”
a   Mais de uma fonte de pesquisa, maior precisão e confiabilidade




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 11 / 21
Conceitos do Projeto

                                               177.18.69.152



                              Classes            A              B              C              D

                               IP (v4)          177            18             69              152




→ IPs pertencentes a mesma Classe C são, normalmente, agrupados na mesma geolocalização
→ IPs/CCs geolocalizados incorretamente precisam de correção manual
→ IPs/CCs corrigidos manualmente são bloqueados (“locked”)
→ Todos os dados não bloqueados possuem um “TTL”
→ TTL é o tempo pelo qual um IP/CC não precisará ser verificado novamente




      CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 12 / 21
Conceitos do Projeto




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 13 / 21
ISOs

→ ISO 3166-1 Alpha 2 – http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

    Código único para cada país, contendo duas letras. É, com raras exceções, o mesmo
código utilizado nos ccTLDs (Country Code Top-Level Domains).

    Por ser único e ocupar pouco espaço pode ser indexado.

p. ex.: BR (Brasil), AR (Argentina), US (Estados Unidos), etc...

→ ISO 3166-2:XY, onde “XY” é um ISO 3166 Alpha2

    Código único para subdivisões de cada país (Estados, Territórios, Condados, etc...),
composto de duas letras para o país (sendo estas duas letras o ISO 3166-1 Alpha 2 do país),
um hífen e dois caracteres para a subdivisão em si.

    Tomando como exemplo o Brasil (http://en.wikipedia.org/wiki/ISO_3166-2:BR):

BR-SP (São Paulo), BR-RJ (Rio de Janeiro), etc...

    Não indexado em nosso projeto, por razões específicas.




      CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 14 / 21
IPv4 e IPv6

O que é importante levar em consideração:

→ Enquanto o IPv4 é representado por 4 grupos de 8 bits, ou octetos, como por exemplo:

    192.168.100.1

O IPv6 é representado por 8 grupos de 16 bits, ou grupos de valores hexadecimais:

    2001:0DB8:0000:0000:130F:0000:0000:140B

→ Não existe conversão de IPv4 para IPv6, o que existe é o que se chama de IPv4-mapeado.

Usando a notação de IPv4-mapeado, teríamos o endereço anterior representado como:

    ::FFFF:192.168.100.1 ou
    0:0:0:0:0:FFFF:192.168.100.1 ou ainda
    0000:0000:0000:0000:0000:FFFF:192.168.100.1




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 15 / 21
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 16 / 21
Falhas inerentes




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 17 / 21
Falhas conceituais




  X Atualização de dados não prevista
  X Excesso de confiança na localização por Classe C
  X Investimento zero

  ? Exigir interação do cliente




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 18 / 21
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 19 / 21
Conclusão



     Geolocalização é uma feature cada vez mais importante em um número crescente
de projetos. Embora seja possível implementar uma rotina razoável de geolocalização
com pouco ou nenhum custo, o projeto ideal passa por uma série de questões que
diferem bastante do apresentado aqui:

→ Investimento em serviços de qualidade para prover os dados
→ Utilização das três formas (GPS, Triangulação e GeoIP), havendo uma tomada de
decisão, dependendo do caso, para qual forma deve ser preferida.




 CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 20 / 21
Obrigado!




                              ? Dúvidas?
                             ↓ Críticas?
                             ↑ Elogios?!




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 21 / 21

More Related Content

Similar to Implementando Rotinas de Geolocalização

OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoEr Galvão Abbott
 
DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2Er Galvão Abbott
 
Php7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberPhp7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberEr Galvão Abbott
 
Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Er Galvão Abbott
 
GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?Wender Machado
 
DBA BRASIL 1.0 - O Futuro do DBA em um universo as a Service.
DBA BRASIL 1.0 - O Futuro do DBA em um universo as a Service.DBA BRASIL 1.0 - O Futuro do DBA em um universo as a Service.
DBA BRASIL 1.0 - O Futuro do DBA em um universo as a Service.Carlos Smaniotto
 
Fsi8a Sistemas Internet
Fsi8a Sistemas InternetFsi8a Sistemas Internet
Fsi8a Sistemas InternetLuiz Domingues
 
Gestão de Ambientes Internet Webseriados
Gestão de Ambientes Internet   WebseriadosGestão de Ambientes Internet   Webseriados
Gestão de Ambientes Internet WebseriadosDurval Amorim
 
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - PagestackerRails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - PagestackerGeorge Guimarães
 
Site estático + Hospedagem Gratuita.pdf
Site estático + Hospedagem Gratuita.pdfSite estático + Hospedagem Gratuita.pdf
Site estático + Hospedagem Gratuita.pdfDanilo Pinotti
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Leandro Moreira
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e KotlinO uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e KotlinDavid Robert Camargo de Campos
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaDiego Cavalca
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
 
Visão Geral De Desenvolvimento Web Sre 2012
Visão Geral De Desenvolvimento Web   Sre 2012Visão Geral De Desenvolvimento Web   Sre 2012
Visão Geral De Desenvolvimento Web Sre 2012Carlos Casalicchio
 

Similar to Implementando Rotinas de Geolocalização (20)

OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com isso
 
DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2
 
Php7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberPhp7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saber
 
Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2
 
GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?
 
DBA BRASIL 1.0 - O Futuro do DBA em um universo as a Service.
DBA BRASIL 1.0 - O Futuro do DBA em um universo as a Service.DBA BRASIL 1.0 - O Futuro do DBA em um universo as a Service.
DBA BRASIL 1.0 - O Futuro do DBA em um universo as a Service.
 
Fsi8a Sistemas Internet
Fsi8a Sistemas InternetFsi8a Sistemas Internet
Fsi8a Sistemas Internet
 
Gestão de Ambientes Internet Webseriados
Gestão de Ambientes Internet   WebseriadosGestão de Ambientes Internet   Webseriados
Gestão de Ambientes Internet Webseriados
 
Webseriados
WebseriadosWebseriados
Webseriados
 
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - PagestackerRails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
 
Site estático + Hospedagem Gratuita.pdf
Site estático + Hospedagem Gratuita.pdfSite estático + Hospedagem Gratuita.pdf
Site estático + Hospedagem Gratuita.pdf
 
PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
 
Live DIO - CI / CD
Live DIO - CI / CDLive DIO - CI / CD
Live DIO - CI / CD
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e KotlinO uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec Cafelândia
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
 
Controle de versão com Git
Controle de versão com GitControle de versão com Git
Controle de versão com Git
 
Visão Geral De Desenvolvimento Web Sre 2012
Visão Geral De Desenvolvimento Web   Sre 2012Visão Geral De Desenvolvimento Web   Sre 2012
Visão Geral De Desenvolvimento Web Sre 2012
 
Meetup Arquitetura Big Data
Meetup Arquitetura Big DataMeetup Arquitetura Big Data
Meetup Arquitetura Big Data
 

More from Er Galvão Abbott

Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Er Galvão Abbott
 
ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014Er Galvão Abbott
 
Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2Er Galvão Abbott
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoEr Galvão Abbott
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPEr Galvão Abbott
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkEr Galvão Abbott
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebEr Galvão Abbott
 
Preto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaPreto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaEr Galvão Abbott
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoEr Galvão Abbott
 

More from Er Galvão Abbott (13)

Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7
 
PHP e Open Source
PHP e Open SourcePHP e Open Source
PHP e Open Source
 
ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014
 
Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercado
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHP
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend Framework
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
 
PHPBR TestFest
PHPBR TestFestPHPBR TestFest
PHPBR TestFest
 
Preto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaPreto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de Cinza
 
Top 10 OWASP com PHP
Top 10 OWASP com PHPTop 10 OWASP com PHP
Top 10 OWASP com PHP
 
Aplicacoes Web Com AJAX
Aplicacoes Web Com AJAXAplicacoes Web Com AJAX
Aplicacoes Web Com AJAX
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU código
 

Implementando Rotinas de Geolocalização

  • 1. Implementando Rotinas de Geolocalização CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 1 / 21
  • 2. Quem?! Er Galvão Abbott trabalha há mais de 16 anos desenvolvendo sistemas e aplicações com interface web. Palestra em eventos, dá cursos em diversas instituições e é o Diretor da PHP Conference Brasil, o principal evento de PHP da América Latina. Especializou-se em segurança de aplicações web, abordando o tema em uma época quando isso ainda era raro no Brasil. Trabalhou com diversas empresas de grande parte, tanto nacionais como internacionais. É o fundador e líder do GU PHPBR, Grupo de Usuários de abrangência nacional, que hoje conta com mais de 1.200 usuários cadastrados. Site: http://www.galvao.eti.br/ Twitter: @galvao Slides e Documentos: http://slideshare.net/ergalvao CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 2 / 21
  • 3. Objetivo Demonstrar conceitos e detalhes – tanto técnicos quanto não-técnicos – envolvidos na implementação de rotinas de Geolocalização em aplicações web. Abordaremos os seguintes tópicos: → Introdução → O projeto → ISOs envolvidas → Sobre IPv4 e IPv6 → Falhas conceituais → Falhas inerentes CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 3 / 21
  • 4. Introdução Existem três formas de se implementar uma rotina de Geolocalização em uma aplicação: → Utilização de Posicionamento Global por Satélite (GPS) → Posicionamento do dispositivo conectado (Triangulação por torres de transmissão) → Análise de endereço IP (GeoIP) Embora as duas primeiras ofereçam uma grande vantagem na precisão, a terceira se aplica a qualquer dispositivo, móvel ou não, e será o foco desta apresentação. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 4 / 21
  • 5. Introdução - Maxmind A Maxmind é uma empresa que fornece bases de dados de GeoIP. Foi escolhida por possuir uma precisão razoável e por oferecer versões gratuitas de suas bases de dados, além de uma API pronta em PHP e diversas outras linguagens. Principais vantagens: ↑ Precisão de 99.8% (nível de país) e de 72% (nível de cidade no caso do Brasil) ↑ APIs prontas para C, C#, Java, Perl e PHP. ↑ Atualizado mensalmente ↑ Formato binário para uso com a API ou CSV para importação direta Principais desvantagens: ↓ Suporte confuso para PHP (“port” para PHP5, fork “melhorado”) ↓ Compatibilidade limitada com IPv6 ↓ Divisão de dados em dois arquivos CSV CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 5 / 21
  • 6. O Projeto CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 6 / 21
  • 7. O Projeto X CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 7 / 21
  • 8. O Projeto CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 8 / 21
  • 9. O Projeto X CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 9 / 21
  • 10. Por que não pode ser simples? X Problemas de performance X Problemas em caso de imprecisão da base de dados X Não é renovável X Apenas uma fonte de pesquisa CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 10 / 21
  • 11. Objetivos a Performance, maior inteligência na localização a Precisão, mesmo sem automação total a Renovável, “correção automatizada” a Mais de uma fonte de pesquisa, maior precisão e confiabilidade CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 11 / 21
  • 12. Conceitos do Projeto 177.18.69.152 Classes A B C D IP (v4) 177 18 69 152 → IPs pertencentes a mesma Classe C são, normalmente, agrupados na mesma geolocalização → IPs/CCs geolocalizados incorretamente precisam de correção manual → IPs/CCs corrigidos manualmente são bloqueados (“locked”) → Todos os dados não bloqueados possuem um “TTL” → TTL é o tempo pelo qual um IP/CC não precisará ser verificado novamente CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 12 / 21
  • 13. Conceitos do Projeto CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 13 / 21
  • 14. ISOs → ISO 3166-1 Alpha 2 – http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 Código único para cada país, contendo duas letras. É, com raras exceções, o mesmo código utilizado nos ccTLDs (Country Code Top-Level Domains). Por ser único e ocupar pouco espaço pode ser indexado. p. ex.: BR (Brasil), AR (Argentina), US (Estados Unidos), etc... → ISO 3166-2:XY, onde “XY” é um ISO 3166 Alpha2 Código único para subdivisões de cada país (Estados, Territórios, Condados, etc...), composto de duas letras para o país (sendo estas duas letras o ISO 3166-1 Alpha 2 do país), um hífen e dois caracteres para a subdivisão em si. Tomando como exemplo o Brasil (http://en.wikipedia.org/wiki/ISO_3166-2:BR): BR-SP (São Paulo), BR-RJ (Rio de Janeiro), etc... Não indexado em nosso projeto, por razões específicas. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 14 / 21
  • 15. IPv4 e IPv6 O que é importante levar em consideração: → Enquanto o IPv4 é representado por 4 grupos de 8 bits, ou octetos, como por exemplo: 192.168.100.1 O IPv6 é representado por 8 grupos de 16 bits, ou grupos de valores hexadecimais: 2001:0DB8:0000:0000:130F:0000:0000:140B → Não existe conversão de IPv4 para IPv6, o que existe é o que se chama de IPv4-mapeado. Usando a notação de IPv4-mapeado, teríamos o endereço anterior representado como: ::FFFF:192.168.100.1 ou 0:0:0:0:0:FFFF:192.168.100.1 ou ainda 0000:0000:0000:0000:0000:FFFF:192.168.100.1 CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 15 / 21
  • 16. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 16 / 21
  • 17. Falhas inerentes CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 17 / 21
  • 18. Falhas conceituais X Atualização de dados não prevista X Excesso de confiança na localização por Classe C X Investimento zero ? Exigir interação do cliente CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 18 / 21
  • 19. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 19 / 21
  • 20. Conclusão Geolocalização é uma feature cada vez mais importante em um número crescente de projetos. Embora seja possível implementar uma rotina razoável de geolocalização com pouco ou nenhum custo, o projeto ideal passa por uma série de questões que diferem bastante do apresentado aqui: → Investimento em serviços de qualidade para prover os dados → Utilização das três formas (GPS, Triangulação e GeoIP), havendo uma tomada de decisão, dependendo do caso, para qual forma deve ser preferida. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 20 / 21
  • 21. Obrigado! ? Dúvidas? ↓ Críticas? ↑ Elogios?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 8/7/12 - 21 / 21