LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... ·...

60
LOCALITZADOR GRÀFIC D’ADRECES IP “GEOLOCALITZACIO IP” Guillermo Luque Arenas Grau d’Enginyeria Informàtica de Sistemes Maria Isabel March Hermo Juny 2018

Transcript of LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... ·...

Page 1: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

LOCALITZADOR GRAgraveFIC DrsquoADRECES IP

ldquoGEOLOCALITZACIO IPrdquo

Guillermo Luque Arenas Grau drsquoEnginyeria Informagravetica de Sistemes Maria Isabel March Hermo Juny 2018

i

Aquesta obra estagrave subjecta a una llicegravencia de

Reconeixement-NoComercial-

SenseObraDerivada 30 Espanya de Creative

Commons

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

ii

FITXA DEL TREBALL FINAL

Tiacutetol del treball

Localitzador Gragravefic drsquoAdreces IP

ldquoGeolocalitzacioacute IPrdquo

Nom de lrsquoautor Guillermo Luque Arenas

Nom del consultor Maria Isabel March Hermo

Data de lliurament

(mmaaaa) 062018

Agraverea del Treball Final Xarxes de Computadors

Titulacioacute Grau drsquoEnginyeria Informagraverica de Sistemes

Resum del Treball

Aquesta memograveria recull el proceacutes drsquoelaboracioacute drsquoun producte destinat a la

geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Per tal de poder assolir

lrsquoobjectiu srsquoha dividit aquest proceacutes en quatre blocs

El primer es centra en recollir i fer una explicacioacute de tots aquells elements que

regulen i conformen la xarxa com els protocols de comunicacioacute o com es

distribueix lrsquoadreccedilament IP de la xarxa

El segon desenvolupa un anagravelisi de quins soacuten els recursos que es poden

utilitzar per desenvolupar el producte En concret srsquoanalitzen diferents serveis

de geolocalitzacioacute IP que es poden trobar a la xarxa tambeacute srsquoavaluen alguns

dels llenguatges de programacioacute que poden ser utilitzats per acomplir lrsquoobjectiu

de lrsquoaplicacioacute igualment es fa un anagravelisi drsquoalguns serveis de representacioacute de

mapes que hi ha a Internet com soacuten Google Maps i Open Street Maps

Finalment es realitza una explicacioacute de les opcions triades per a implementar

lrsquoaplicacioacute

En el tercer bloc srsquoexposa com srsquoha dissenyat el producte tenint en compte

els diferents aspectes que ha de cobrir una aplicacioacute Tambeacute srsquoinclou la part

de disseny meacutes concreta com eacutes el diagrama de classes que mostra com es

vol implementar lrsquoaplicacioacute

Finalment el quart bloc fa una explicacioacute de com srsquoha portat a la pragravectica el

que srsquoha dissenyat Aquesta es divideix en el proceacutes per trobar els nodes

intermedis o traccedila la consulta de la informacioacute de cada node i com srsquoha

representat a traveacutes drsquoun servei de mapa la ruta i els node trobats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

iii

Abstract

This report includes the process of preparing a product for the geolocation of

equipment through its IP address In order to achieve the goal this process

has been divided into four blocks

The first one focuses on collecting and explaining all those elements that

regulate and shape the network such as communication protocols or how to

distribute IP address of the network

The second one develops an analysis of the resources that can be used to

develop the product In particular we analyze different IP geolocation services

that can be found on the network some of the programming languages that

can be used to accomplish the purpose of the application are also evaluated

some analyzes are also made Map representation services on the Internet

such as Google Maps and Open Street Maps Finally an explanation of the

options chosen to implement the application is made

In the third block we explain how the product was designed taking into account

the different aspects that an application must cover Also the more specific

design part is included such as the class diagram that shows how the

application is to be implemented

Finally the fourth block gives an explanation of how the design has been put

into practice This is divided into the process to find the intermediate nodes or

trace the query for the information of each node and how the route and nodes

found have been represented through a map service

Paraules clau

adreccedilament IP geolocalitzacioacute DNS Java Google ping traceroute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

iv

Iacutendex

1 Introduccioacute 1

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i

aportacioacute del TFG 2

12 Objectius del TFG 2

13 Enfocament i megravetode seguit 3

14 Planificacioacute del projecte 4

15 Productes obtinguts 7

16 Breu descripcioacute dels altres capiacutetols de la memograveria 7

2 Marc teograveric 9

21 Encapsulament i la pila TCPIP 9

22 Adreccedilament IPv4 10

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet) 12

24 Ping 14

25 Traceroute 15

26 Domain Name System (DNS) 15

27 Whois 15

3 Anagravelisi de recursos 17

31 Geolocalitzacioacute IP 17

32 Llenguatges de programacioacute 21

33 Serveis de Mapes 23

34 Eleccioacute de recursos 26

4 Disseny de lrsquoaplicacioacute 28

41 Cas drsquouacutes 28

42 Diagrama drsquoEstats 28

43 Diagrama de sequumlegravencia 30

44 Diagrama de classes 31

45 Disseny de les finestres 33

5 Implementacioacute del producte 35

51 Creacioacute de paquets i traccedila 35

52 Geolocalitzacioacute IP dels nodes 37

53 Mostrar informacioacute en un mapa 38

54 Informacioacute Whois 39

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

v

55 Entorn gragravefic de lrsquoaplicacioacute 40

6 Conclusions 43

7 Glossari 44

8 Bibliografia 45

9 Annexos 46

91 Annex A Manual de instalmiddotlacioacute 46

92 Annex B Manual drsquousuari 52

Iacutendex drsquoIlmiddotlustracions

Ilmiddotlustracioacute 1 Diagrama de Gantt 7

Ilmiddotlustracioacute 2 Pila TCPIP 10

Ilmiddotlustracioacute 3 Estagravendard OSI 10

Ilmiddotlustracioacute 4 Estructura datagrama IP 12

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP 13

Ilmiddotlustracioacute 6 Tarifes MaxMind 18

Ilmiddotlustracioacute 7 Tarifes IP2Location 18

Ilmiddotlustracioacute 8 Tarifes Ipinfoio 19

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps 21

Ilmiddotlustracioacute 10 Entorn PyCharm 22

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82 23

Ilmiddotlustracioacute 12 Open Street Map 24

Ilmiddotlustracioacute 13 Google Static Maps API 25

Ilmiddotlustracioacute 14 Google Maps JavaScript API 25

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript 26

Ilmiddotlustracioacute 16 Cas dus 28

Ilmiddotlustracioacute 17 Diagrama destats 29

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia 30

Ilmiddotlustracioacute 19 Diagrama de classes 31

Ilmiddotlustracioacute 20 Disseny finestra principal 33

Ilmiddotlustracioacute 21 Finestra Whois 39

Ilmiddotlustracioacute 22 Finestra principal (Inici) 40

Ilmiddotlustracioacute 24 Finestra principal durant el proceacutes de traccedila 41

Ilmiddotlustracioacute 25 Pantalla principal al finalitzar el proceacutes de traccedila 41

Ilmiddotlustracioacute 26 WinPcap inici dinstalmiddotlacioacute 47

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

vi

Ilmiddotlustracioacute 27 WinPcap acceptacioacute de llicencia 47

Ilmiddotlustracioacute 28 WinPcap configuracioacute 48

Ilmiddotlustracioacute 29 WinPcap finalitzacioacute dinstalmiddotlacioacute 48

Ilmiddotlustracioacute 30 Jpcap inici instalmiddotlacioacute 49

Ilmiddotlustracioacute 31 Jpcap benvinguda instalmiddotlador 49

Ilmiddotlustracioacute 32 Jpcap acceptacioacute de llicencia 50

Ilmiddotlustracioacute 33 Jpcap proceacutes dinstalmiddotlacioacute 50

Ilmiddotlustracioacute 34 Jpcap finalitzacioacute del proceacutes 51

Iacutendex de Taules

Taula 1 Dates dentrega 4

Taula 2 Classes IP 12

Taula 3 Rangs dadreces privades 12

Taula 4 Respostes ICMP 14

Taula 5 Servidors Whois dels diferents continents 16

Taula 6 Taula de camps de IP-Api 20

Taula 7 Missatges derror de Ip-api 20

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

1

1 Introduccioacute

Els inicis drsquoInternet van ser a la degravecada dels anys 1960 als Estats Units quan

lrsquoorganitzacioacute ARPA (Advanced Research Project Research) va crear una xarxa per tal drsquoaprofitar

millor el potencial dels ordinadors i alhora permetre que els laboratoris i investigadors poguessin

disposar dels seus propis equips Per tal drsquoevitar duplicitats en la feina i pegraverdua de recursos es

va crear la xarxa ARPAnet la qual va permetre a aquests estar interconnectats i aprofitar millor

els recursos Poc a poc es van anar afegint a aquesta xarxa meacutes organitzacions governamentals

i universitats aquesta xarxa oferia una interconnexioacute drsquoalta velocitat entre tots els participants

i donava acceacutes a la informacioacute drsquoaltres organitzacions drsquouna manera molt eficient

Des del seu inici oficial al any 1969 quan es va fer la interconnexioacute entre les universitats

de UCLA i Stanford mitjanccedilant una xarxa commutada telefogravenica fins als anys 1990 es pot

considerar que ARPAnet va estar en constant construccioacute perograve eacutes a partir dels anys 1990 que

amb la introduccioacute de noves facilitats de connexioacute i eines gragravefiques simples per facilitar lrsquouacutes de

la xarxa aquesta es popularitza Tambeacute en el any 1990 es crea el primer client Web anomenat

WolrdWideWeb (www) i comenccedila a anomenar-se Internet tal com es coneix actualment

Actualment a Internet es calcula que hi ha 4021 mil milions drsquousuaris la xarxa srsquoha

globalitzat i aquest nuacutemero representa el 53 de la poblacioacute mundial La xarxa srsquoha convertit

per a molta gent i negocis en un punt drsquointerconnexioacute entre aquests i cada vegada han anat

sorgint noves necessitats a lrsquohora de millorar aquesta relacioacute

Una drsquoaquestes necessitats eacutes poder saber des de quin punt geogragravefic accedeix un usuari

o organitzacioacute La xarxa ha proporcionat als usuaris la possibilitat drsquoaccedir en principi a

qualsevol recurs independentment drsquoon es troba aquest perograve pot ser que aquest recurs no hagi

de ser accessible per a segons quines regions geogragravefiques Per exemple pot existir una tenda

virtual que no tingui distribucioacute per a Agravesia o que per a segons quins paiumlsos ofereixi uns productes

diferents llavors apareix la necessitat de saber des de quin punt geogragravefic estagrave accedint aquest

usuari per tal drsquooptimitzar els recursos drsquoaquest determinat servei Altra possibilitat pot ser per

motius de seguretat

Es en aquest punt apareix la necessitat de la Geolocalitzacioacute IP aquesta es tracta

bagravesicament de relacionar una adreccedila IP amb un punt concret de la geografia mundial Per cobrir

aquesta necessitat srsquohan desenvolupat diversos serveis dedicats a facilitar amb major o menor

exactitud les dades de geolocalitzacioacute de les adreces IP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

2

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i aportacioacute del TFG

Una de les parts que sempre mrsquoha interessat dels entorns informagravetics ha sigut com

srsquointerconnecten els equips i comparteixen la informacioacute entre ells Internet ha aportat als

equips informagravetics la possibilitat de compartir informacioacute eliminant moltes fronteres

geogragravefiques eacutes per aquest motiu que vaig triar aquest camp per desenvolupar el Treball de Fi

de Grau

Durant lrsquoestudi de les diferents assignatures de Xarxes de Computadors he pogut

aprendre moltes de les caracteriacutestiques drsquoaquestes comunicacions entre equips des del punt

concret drsquoun equip fins al funcionament drsquouna xarxa complexa com pot ser una Intranet o

Internet Tambeacute he apregraves el funcionament dels diferents protocols de comunicacioacute i els

elements importants que formen una xarxa com soacuten els encaminadors els commutadors o els

servidors de domini (DNS)

Eacutes a partir drsquoaquest estudi que apareix la possibilitat drsquoampliar els coneixements de com

srsquoorganitza concretament Internet i com es poden aprofitar els diferents serveis que existeixen

a la xarxa per a desenvolupar una aplicacioacute que permeti geolocalitzar els equips dintre del moacuten

fiacutesic eacutes a dir en un mapa geogragravefic

Aquest Treball de Fi de Grau parteix dels coneixements previs sobre xarxes i preteacuten

ampliar aquests coneixements aportant una visioacute de les possibilitats que ofereix la xarxa per a

utilitzar recursos i combinar-los per a elaborar un producte que a la vegada ofereixi un servei

concret en aquest cas la geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Lrsquoaportacioacute que

preteacuten eacutes la clarificacioacute de conceptes de geolocalitzacioacute i protocols de comunicacioacute que

permeten la identificacioacute dels nodes existents en una comunicacioacute en una xarxa

12 Objectius del TFG

Lrsquoobjectiu drsquoaquest TFG eacutes crear un producte que donat un nom de host drsquoInternet

proporcioni la informacioacute corresponent a aquest a meacutes de mostrar per quins nodes han de

passar els paquets per tal drsquoaccedir-hi La informacioacute relativa als nodes seragrave la seva

geolocalitzacioacute dins drsquoun mapa mundi i aquests aniran enllaccedilats amb una liacutenia per a mostrar el

camiacute de la informacioacute

Per tal de portar a terme aquestes accions lrsquoaplicacioacute ha de realitzar diferents processos

enllaccedilats entre si Primer srsquoha drsquoimplementar un megravetode que retorni la informacioacute dels nodes a

mode de traceroute tot creant els paquets que utilitza el protocol ICMP per a realitzar aquest

A continuacioacute srsquohauran de situar aquests nodes en unes coordenades geogragravefiques per tal de

finalment poder situar-los dintre drsquoun mapa mundi A banda drsquoaquest proceacutes de geolocalitzacioacute

es vol fer una consulta al servei Whois per tal que retorni tota la informacioacute relativa al nom de

host indicat si lrsquousuari ho demana

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

3

Els objectius generals soacuten els seguumlents

Crear un producte capaccedil drsquoidentificar els nodes que hi ha entre lrsquoequip des drsquoon srsquoestagrave

executant i un nom de host o adreccedila IP drsquoInternet

Implementar dintre del producte la possibilitat de consultar les dades referents al host

de destiacute

Ubicar dintre drsquoun mapa mundi els nodes identificats amb anterioritat com a nodes

entre lrsquoequip origen i el host de destiacute

Realitzar la memograveria que reculli la documentacioacute elaborada durant tot el proceacutes del

projecte aixiacute com lrsquoexplicacioacute del funcionament drsquoaquest

Aprofundir a nivell teograveric i pragravectic en els conceptes relacionats amb el projecte com

poden ser lrsquoestructura dels datagrames ICMP i les seves utilitats les diferents

possibilitats que existeixen per tal de geolocalitzar un host determinat o la

implementacioacute drsquoaquests en el llenguatge de programacioacute triat

13 Enfocament i megravetode seguit

A lrsquohora de planificar la construccioacute drsquoaquesta aplicacioacute que ha de mostrar la ruta que hi

ha entre dos equips un drsquoorigen i un altre de destiacute srsquoha optat per dividir el conjunt de

funcionalitats que srsquohan de implementar i treballar cadascuna drsquoelles per separat perograve alhora

drsquouna manera incremental Eacutes a dir srsquoha de resoldre cada funcionalitat per separat i una vegada

es teacute implementada aquesta ens proporcionava la base de la seguumlent

Les funcionalitats necessagraveries per completar el projecte soacuten les seguumlents

Realitzacioacute de la traccedila entre el node origen i el destiacute

Obtencioacute de tota la informacioacute necessagraveria dels nodes com eacutes la latitud i la longitud

Mostrar aquests nodes en una taula

Visualitzacioacute drsquoaquests nodes juntament amb la ruta que realitzen els paquets en un

mapa

Aixiacute doncs primerament caldragrave construir el megravetode que permeti realitzar la traccedila entre

nodes per tal drsquoobtenir la informacioacute bagravesica drsquoaquests

Una vegada es tingui els nodes identificats amb la informacioacute obtinguda en el pas

anterior caldragrave consultar en algun servei la informacioacute concreta de geolocalitzacioacute de cada node

i afegir-la a la informacioacute que ja es teacute

A continuacioacute cal mostrar la informacioacute obtinguda de cada node en una taula que

permeti a lrsquousuari poder revisar aquesta informacioacute drsquouna manera fagravecil i intuiumltiva Aixograve es faragrave

mitjanccedilant una taula que recolliragrave totes les dades obtingudes

Finalment utilitzant les dades obtingudes en el pas anterior caldragrave utilitzar un servei de

mapes per a mostrar-la correctament en un mapa de tal manera que tambeacute quedi representada

la ruta entre nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 2: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

i

Aquesta obra estagrave subjecta a una llicegravencia de

Reconeixement-NoComercial-

SenseObraDerivada 30 Espanya de Creative

Commons

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

ii

FITXA DEL TREBALL FINAL

Tiacutetol del treball

Localitzador Gragravefic drsquoAdreces IP

ldquoGeolocalitzacioacute IPrdquo

Nom de lrsquoautor Guillermo Luque Arenas

Nom del consultor Maria Isabel March Hermo

Data de lliurament

(mmaaaa) 062018

Agraverea del Treball Final Xarxes de Computadors

Titulacioacute Grau drsquoEnginyeria Informagraverica de Sistemes

Resum del Treball

Aquesta memograveria recull el proceacutes drsquoelaboracioacute drsquoun producte destinat a la

geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Per tal de poder assolir

lrsquoobjectiu srsquoha dividit aquest proceacutes en quatre blocs

El primer es centra en recollir i fer una explicacioacute de tots aquells elements que

regulen i conformen la xarxa com els protocols de comunicacioacute o com es

distribueix lrsquoadreccedilament IP de la xarxa

El segon desenvolupa un anagravelisi de quins soacuten els recursos que es poden

utilitzar per desenvolupar el producte En concret srsquoanalitzen diferents serveis

de geolocalitzacioacute IP que es poden trobar a la xarxa tambeacute srsquoavaluen alguns

dels llenguatges de programacioacute que poden ser utilitzats per acomplir lrsquoobjectiu

de lrsquoaplicacioacute igualment es fa un anagravelisi drsquoalguns serveis de representacioacute de

mapes que hi ha a Internet com soacuten Google Maps i Open Street Maps

Finalment es realitza una explicacioacute de les opcions triades per a implementar

lrsquoaplicacioacute

En el tercer bloc srsquoexposa com srsquoha dissenyat el producte tenint en compte

els diferents aspectes que ha de cobrir una aplicacioacute Tambeacute srsquoinclou la part

de disseny meacutes concreta com eacutes el diagrama de classes que mostra com es

vol implementar lrsquoaplicacioacute

Finalment el quart bloc fa una explicacioacute de com srsquoha portat a la pragravectica el

que srsquoha dissenyat Aquesta es divideix en el proceacutes per trobar els nodes

intermedis o traccedila la consulta de la informacioacute de cada node i com srsquoha

representat a traveacutes drsquoun servei de mapa la ruta i els node trobats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

iii

Abstract

This report includes the process of preparing a product for the geolocation of

equipment through its IP address In order to achieve the goal this process

has been divided into four blocks

The first one focuses on collecting and explaining all those elements that

regulate and shape the network such as communication protocols or how to

distribute IP address of the network

The second one develops an analysis of the resources that can be used to

develop the product In particular we analyze different IP geolocation services

that can be found on the network some of the programming languages that

can be used to accomplish the purpose of the application are also evaluated

some analyzes are also made Map representation services on the Internet

such as Google Maps and Open Street Maps Finally an explanation of the

options chosen to implement the application is made

In the third block we explain how the product was designed taking into account

the different aspects that an application must cover Also the more specific

design part is included such as the class diagram that shows how the

application is to be implemented

Finally the fourth block gives an explanation of how the design has been put

into practice This is divided into the process to find the intermediate nodes or

trace the query for the information of each node and how the route and nodes

found have been represented through a map service

Paraules clau

adreccedilament IP geolocalitzacioacute DNS Java Google ping traceroute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

iv

Iacutendex

1 Introduccioacute 1

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i

aportacioacute del TFG 2

12 Objectius del TFG 2

13 Enfocament i megravetode seguit 3

14 Planificacioacute del projecte 4

15 Productes obtinguts 7

16 Breu descripcioacute dels altres capiacutetols de la memograveria 7

2 Marc teograveric 9

21 Encapsulament i la pila TCPIP 9

22 Adreccedilament IPv4 10

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet) 12

24 Ping 14

25 Traceroute 15

26 Domain Name System (DNS) 15

27 Whois 15

3 Anagravelisi de recursos 17

31 Geolocalitzacioacute IP 17

32 Llenguatges de programacioacute 21

33 Serveis de Mapes 23

34 Eleccioacute de recursos 26

4 Disseny de lrsquoaplicacioacute 28

41 Cas drsquouacutes 28

42 Diagrama drsquoEstats 28

43 Diagrama de sequumlegravencia 30

44 Diagrama de classes 31

45 Disseny de les finestres 33

5 Implementacioacute del producte 35

51 Creacioacute de paquets i traccedila 35

52 Geolocalitzacioacute IP dels nodes 37

53 Mostrar informacioacute en un mapa 38

54 Informacioacute Whois 39

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

v

55 Entorn gragravefic de lrsquoaplicacioacute 40

6 Conclusions 43

7 Glossari 44

8 Bibliografia 45

9 Annexos 46

91 Annex A Manual de instalmiddotlacioacute 46

92 Annex B Manual drsquousuari 52

Iacutendex drsquoIlmiddotlustracions

Ilmiddotlustracioacute 1 Diagrama de Gantt 7

Ilmiddotlustracioacute 2 Pila TCPIP 10

Ilmiddotlustracioacute 3 Estagravendard OSI 10

Ilmiddotlustracioacute 4 Estructura datagrama IP 12

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP 13

Ilmiddotlustracioacute 6 Tarifes MaxMind 18

Ilmiddotlustracioacute 7 Tarifes IP2Location 18

Ilmiddotlustracioacute 8 Tarifes Ipinfoio 19

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps 21

Ilmiddotlustracioacute 10 Entorn PyCharm 22

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82 23

Ilmiddotlustracioacute 12 Open Street Map 24

Ilmiddotlustracioacute 13 Google Static Maps API 25

Ilmiddotlustracioacute 14 Google Maps JavaScript API 25

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript 26

Ilmiddotlustracioacute 16 Cas dus 28

Ilmiddotlustracioacute 17 Diagrama destats 29

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia 30

Ilmiddotlustracioacute 19 Diagrama de classes 31

Ilmiddotlustracioacute 20 Disseny finestra principal 33

Ilmiddotlustracioacute 21 Finestra Whois 39

Ilmiddotlustracioacute 22 Finestra principal (Inici) 40

Ilmiddotlustracioacute 24 Finestra principal durant el proceacutes de traccedila 41

Ilmiddotlustracioacute 25 Pantalla principal al finalitzar el proceacutes de traccedila 41

Ilmiddotlustracioacute 26 WinPcap inici dinstalmiddotlacioacute 47

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

vi

Ilmiddotlustracioacute 27 WinPcap acceptacioacute de llicencia 47

Ilmiddotlustracioacute 28 WinPcap configuracioacute 48

Ilmiddotlustracioacute 29 WinPcap finalitzacioacute dinstalmiddotlacioacute 48

Ilmiddotlustracioacute 30 Jpcap inici instalmiddotlacioacute 49

Ilmiddotlustracioacute 31 Jpcap benvinguda instalmiddotlador 49

Ilmiddotlustracioacute 32 Jpcap acceptacioacute de llicencia 50

Ilmiddotlustracioacute 33 Jpcap proceacutes dinstalmiddotlacioacute 50

Ilmiddotlustracioacute 34 Jpcap finalitzacioacute del proceacutes 51

Iacutendex de Taules

Taula 1 Dates dentrega 4

Taula 2 Classes IP 12

Taula 3 Rangs dadreces privades 12

Taula 4 Respostes ICMP 14

Taula 5 Servidors Whois dels diferents continents 16

Taula 6 Taula de camps de IP-Api 20

Taula 7 Missatges derror de Ip-api 20

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

1

1 Introduccioacute

Els inicis drsquoInternet van ser a la degravecada dels anys 1960 als Estats Units quan

lrsquoorganitzacioacute ARPA (Advanced Research Project Research) va crear una xarxa per tal drsquoaprofitar

millor el potencial dels ordinadors i alhora permetre que els laboratoris i investigadors poguessin

disposar dels seus propis equips Per tal drsquoevitar duplicitats en la feina i pegraverdua de recursos es

va crear la xarxa ARPAnet la qual va permetre a aquests estar interconnectats i aprofitar millor

els recursos Poc a poc es van anar afegint a aquesta xarxa meacutes organitzacions governamentals

i universitats aquesta xarxa oferia una interconnexioacute drsquoalta velocitat entre tots els participants

i donava acceacutes a la informacioacute drsquoaltres organitzacions drsquouna manera molt eficient

Des del seu inici oficial al any 1969 quan es va fer la interconnexioacute entre les universitats

de UCLA i Stanford mitjanccedilant una xarxa commutada telefogravenica fins als anys 1990 es pot

considerar que ARPAnet va estar en constant construccioacute perograve eacutes a partir dels anys 1990 que

amb la introduccioacute de noves facilitats de connexioacute i eines gragravefiques simples per facilitar lrsquouacutes de

la xarxa aquesta es popularitza Tambeacute en el any 1990 es crea el primer client Web anomenat

WolrdWideWeb (www) i comenccedila a anomenar-se Internet tal com es coneix actualment

Actualment a Internet es calcula que hi ha 4021 mil milions drsquousuaris la xarxa srsquoha

globalitzat i aquest nuacutemero representa el 53 de la poblacioacute mundial La xarxa srsquoha convertit

per a molta gent i negocis en un punt drsquointerconnexioacute entre aquests i cada vegada han anat

sorgint noves necessitats a lrsquohora de millorar aquesta relacioacute

Una drsquoaquestes necessitats eacutes poder saber des de quin punt geogragravefic accedeix un usuari

o organitzacioacute La xarxa ha proporcionat als usuaris la possibilitat drsquoaccedir en principi a

qualsevol recurs independentment drsquoon es troba aquest perograve pot ser que aquest recurs no hagi

de ser accessible per a segons quines regions geogragravefiques Per exemple pot existir una tenda

virtual que no tingui distribucioacute per a Agravesia o que per a segons quins paiumlsos ofereixi uns productes

diferents llavors apareix la necessitat de saber des de quin punt geogragravefic estagrave accedint aquest

usuari per tal drsquooptimitzar els recursos drsquoaquest determinat servei Altra possibilitat pot ser per

motius de seguretat

Es en aquest punt apareix la necessitat de la Geolocalitzacioacute IP aquesta es tracta

bagravesicament de relacionar una adreccedila IP amb un punt concret de la geografia mundial Per cobrir

aquesta necessitat srsquohan desenvolupat diversos serveis dedicats a facilitar amb major o menor

exactitud les dades de geolocalitzacioacute de les adreces IP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

2

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i aportacioacute del TFG

Una de les parts que sempre mrsquoha interessat dels entorns informagravetics ha sigut com

srsquointerconnecten els equips i comparteixen la informacioacute entre ells Internet ha aportat als

equips informagravetics la possibilitat de compartir informacioacute eliminant moltes fronteres

geogragravefiques eacutes per aquest motiu que vaig triar aquest camp per desenvolupar el Treball de Fi

de Grau

Durant lrsquoestudi de les diferents assignatures de Xarxes de Computadors he pogut

aprendre moltes de les caracteriacutestiques drsquoaquestes comunicacions entre equips des del punt

concret drsquoun equip fins al funcionament drsquouna xarxa complexa com pot ser una Intranet o

Internet Tambeacute he apregraves el funcionament dels diferents protocols de comunicacioacute i els

elements importants que formen una xarxa com soacuten els encaminadors els commutadors o els

servidors de domini (DNS)

Eacutes a partir drsquoaquest estudi que apareix la possibilitat drsquoampliar els coneixements de com

srsquoorganitza concretament Internet i com es poden aprofitar els diferents serveis que existeixen

a la xarxa per a desenvolupar una aplicacioacute que permeti geolocalitzar els equips dintre del moacuten

fiacutesic eacutes a dir en un mapa geogragravefic

Aquest Treball de Fi de Grau parteix dels coneixements previs sobre xarxes i preteacuten

ampliar aquests coneixements aportant una visioacute de les possibilitats que ofereix la xarxa per a

utilitzar recursos i combinar-los per a elaborar un producte que a la vegada ofereixi un servei

concret en aquest cas la geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Lrsquoaportacioacute que

preteacuten eacutes la clarificacioacute de conceptes de geolocalitzacioacute i protocols de comunicacioacute que

permeten la identificacioacute dels nodes existents en una comunicacioacute en una xarxa

12 Objectius del TFG

Lrsquoobjectiu drsquoaquest TFG eacutes crear un producte que donat un nom de host drsquoInternet

proporcioni la informacioacute corresponent a aquest a meacutes de mostrar per quins nodes han de

passar els paquets per tal drsquoaccedir-hi La informacioacute relativa als nodes seragrave la seva

geolocalitzacioacute dins drsquoun mapa mundi i aquests aniran enllaccedilats amb una liacutenia per a mostrar el

camiacute de la informacioacute

Per tal de portar a terme aquestes accions lrsquoaplicacioacute ha de realitzar diferents processos

enllaccedilats entre si Primer srsquoha drsquoimplementar un megravetode que retorni la informacioacute dels nodes a

mode de traceroute tot creant els paquets que utilitza el protocol ICMP per a realitzar aquest

A continuacioacute srsquohauran de situar aquests nodes en unes coordenades geogragravefiques per tal de

finalment poder situar-los dintre drsquoun mapa mundi A banda drsquoaquest proceacutes de geolocalitzacioacute

es vol fer una consulta al servei Whois per tal que retorni tota la informacioacute relativa al nom de

host indicat si lrsquousuari ho demana

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

3

Els objectius generals soacuten els seguumlents

Crear un producte capaccedil drsquoidentificar els nodes que hi ha entre lrsquoequip des drsquoon srsquoestagrave

executant i un nom de host o adreccedila IP drsquoInternet

Implementar dintre del producte la possibilitat de consultar les dades referents al host

de destiacute

Ubicar dintre drsquoun mapa mundi els nodes identificats amb anterioritat com a nodes

entre lrsquoequip origen i el host de destiacute

Realitzar la memograveria que reculli la documentacioacute elaborada durant tot el proceacutes del

projecte aixiacute com lrsquoexplicacioacute del funcionament drsquoaquest

Aprofundir a nivell teograveric i pragravectic en els conceptes relacionats amb el projecte com

poden ser lrsquoestructura dels datagrames ICMP i les seves utilitats les diferents

possibilitats que existeixen per tal de geolocalitzar un host determinat o la

implementacioacute drsquoaquests en el llenguatge de programacioacute triat

13 Enfocament i megravetode seguit

A lrsquohora de planificar la construccioacute drsquoaquesta aplicacioacute que ha de mostrar la ruta que hi

ha entre dos equips un drsquoorigen i un altre de destiacute srsquoha optat per dividir el conjunt de

funcionalitats que srsquohan de implementar i treballar cadascuna drsquoelles per separat perograve alhora

drsquouna manera incremental Eacutes a dir srsquoha de resoldre cada funcionalitat per separat i una vegada

es teacute implementada aquesta ens proporcionava la base de la seguumlent

Les funcionalitats necessagraveries per completar el projecte soacuten les seguumlents

Realitzacioacute de la traccedila entre el node origen i el destiacute

Obtencioacute de tota la informacioacute necessagraveria dels nodes com eacutes la latitud i la longitud

Mostrar aquests nodes en una taula

Visualitzacioacute drsquoaquests nodes juntament amb la ruta que realitzen els paquets en un

mapa

Aixiacute doncs primerament caldragrave construir el megravetode que permeti realitzar la traccedila entre

nodes per tal drsquoobtenir la informacioacute bagravesica drsquoaquests

Una vegada es tingui els nodes identificats amb la informacioacute obtinguda en el pas

anterior caldragrave consultar en algun servei la informacioacute concreta de geolocalitzacioacute de cada node

i afegir-la a la informacioacute que ja es teacute

A continuacioacute cal mostrar la informacioacute obtinguda de cada node en una taula que

permeti a lrsquousuari poder revisar aquesta informacioacute drsquouna manera fagravecil i intuiumltiva Aixograve es faragrave

mitjanccedilant una taula que recolliragrave totes les dades obtingudes

Finalment utilitzant les dades obtingudes en el pas anterior caldragrave utilitzar un servei de

mapes per a mostrar-la correctament en un mapa de tal manera que tambeacute quedi representada

la ruta entre nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 3: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

ii

FITXA DEL TREBALL FINAL

Tiacutetol del treball

Localitzador Gragravefic drsquoAdreces IP

ldquoGeolocalitzacioacute IPrdquo

Nom de lrsquoautor Guillermo Luque Arenas

Nom del consultor Maria Isabel March Hermo

Data de lliurament

(mmaaaa) 062018

Agraverea del Treball Final Xarxes de Computadors

Titulacioacute Grau drsquoEnginyeria Informagraverica de Sistemes

Resum del Treball

Aquesta memograveria recull el proceacutes drsquoelaboracioacute drsquoun producte destinat a la

geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Per tal de poder assolir

lrsquoobjectiu srsquoha dividit aquest proceacutes en quatre blocs

El primer es centra en recollir i fer una explicacioacute de tots aquells elements que

regulen i conformen la xarxa com els protocols de comunicacioacute o com es

distribueix lrsquoadreccedilament IP de la xarxa

El segon desenvolupa un anagravelisi de quins soacuten els recursos que es poden

utilitzar per desenvolupar el producte En concret srsquoanalitzen diferents serveis

de geolocalitzacioacute IP que es poden trobar a la xarxa tambeacute srsquoavaluen alguns

dels llenguatges de programacioacute que poden ser utilitzats per acomplir lrsquoobjectiu

de lrsquoaplicacioacute igualment es fa un anagravelisi drsquoalguns serveis de representacioacute de

mapes que hi ha a Internet com soacuten Google Maps i Open Street Maps

Finalment es realitza una explicacioacute de les opcions triades per a implementar

lrsquoaplicacioacute

En el tercer bloc srsquoexposa com srsquoha dissenyat el producte tenint en compte

els diferents aspectes que ha de cobrir una aplicacioacute Tambeacute srsquoinclou la part

de disseny meacutes concreta com eacutes el diagrama de classes que mostra com es

vol implementar lrsquoaplicacioacute

Finalment el quart bloc fa una explicacioacute de com srsquoha portat a la pragravectica el

que srsquoha dissenyat Aquesta es divideix en el proceacutes per trobar els nodes

intermedis o traccedila la consulta de la informacioacute de cada node i com srsquoha

representat a traveacutes drsquoun servei de mapa la ruta i els node trobats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

iii

Abstract

This report includes the process of preparing a product for the geolocation of

equipment through its IP address In order to achieve the goal this process

has been divided into four blocks

The first one focuses on collecting and explaining all those elements that

regulate and shape the network such as communication protocols or how to

distribute IP address of the network

The second one develops an analysis of the resources that can be used to

develop the product In particular we analyze different IP geolocation services

that can be found on the network some of the programming languages that

can be used to accomplish the purpose of the application are also evaluated

some analyzes are also made Map representation services on the Internet

such as Google Maps and Open Street Maps Finally an explanation of the

options chosen to implement the application is made

In the third block we explain how the product was designed taking into account

the different aspects that an application must cover Also the more specific

design part is included such as the class diagram that shows how the

application is to be implemented

Finally the fourth block gives an explanation of how the design has been put

into practice This is divided into the process to find the intermediate nodes or

trace the query for the information of each node and how the route and nodes

found have been represented through a map service

Paraules clau

adreccedilament IP geolocalitzacioacute DNS Java Google ping traceroute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

iv

Iacutendex

1 Introduccioacute 1

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i

aportacioacute del TFG 2

12 Objectius del TFG 2

13 Enfocament i megravetode seguit 3

14 Planificacioacute del projecte 4

15 Productes obtinguts 7

16 Breu descripcioacute dels altres capiacutetols de la memograveria 7

2 Marc teograveric 9

21 Encapsulament i la pila TCPIP 9

22 Adreccedilament IPv4 10

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet) 12

24 Ping 14

25 Traceroute 15

26 Domain Name System (DNS) 15

27 Whois 15

3 Anagravelisi de recursos 17

31 Geolocalitzacioacute IP 17

32 Llenguatges de programacioacute 21

33 Serveis de Mapes 23

34 Eleccioacute de recursos 26

4 Disseny de lrsquoaplicacioacute 28

41 Cas drsquouacutes 28

42 Diagrama drsquoEstats 28

43 Diagrama de sequumlegravencia 30

44 Diagrama de classes 31

45 Disseny de les finestres 33

5 Implementacioacute del producte 35

51 Creacioacute de paquets i traccedila 35

52 Geolocalitzacioacute IP dels nodes 37

53 Mostrar informacioacute en un mapa 38

54 Informacioacute Whois 39

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

v

55 Entorn gragravefic de lrsquoaplicacioacute 40

6 Conclusions 43

7 Glossari 44

8 Bibliografia 45

9 Annexos 46

91 Annex A Manual de instalmiddotlacioacute 46

92 Annex B Manual drsquousuari 52

Iacutendex drsquoIlmiddotlustracions

Ilmiddotlustracioacute 1 Diagrama de Gantt 7

Ilmiddotlustracioacute 2 Pila TCPIP 10

Ilmiddotlustracioacute 3 Estagravendard OSI 10

Ilmiddotlustracioacute 4 Estructura datagrama IP 12

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP 13

Ilmiddotlustracioacute 6 Tarifes MaxMind 18

Ilmiddotlustracioacute 7 Tarifes IP2Location 18

Ilmiddotlustracioacute 8 Tarifes Ipinfoio 19

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps 21

Ilmiddotlustracioacute 10 Entorn PyCharm 22

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82 23

Ilmiddotlustracioacute 12 Open Street Map 24

Ilmiddotlustracioacute 13 Google Static Maps API 25

Ilmiddotlustracioacute 14 Google Maps JavaScript API 25

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript 26

Ilmiddotlustracioacute 16 Cas dus 28

Ilmiddotlustracioacute 17 Diagrama destats 29

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia 30

Ilmiddotlustracioacute 19 Diagrama de classes 31

Ilmiddotlustracioacute 20 Disseny finestra principal 33

Ilmiddotlustracioacute 21 Finestra Whois 39

Ilmiddotlustracioacute 22 Finestra principal (Inici) 40

Ilmiddotlustracioacute 24 Finestra principal durant el proceacutes de traccedila 41

Ilmiddotlustracioacute 25 Pantalla principal al finalitzar el proceacutes de traccedila 41

Ilmiddotlustracioacute 26 WinPcap inici dinstalmiddotlacioacute 47

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

vi

Ilmiddotlustracioacute 27 WinPcap acceptacioacute de llicencia 47

Ilmiddotlustracioacute 28 WinPcap configuracioacute 48

Ilmiddotlustracioacute 29 WinPcap finalitzacioacute dinstalmiddotlacioacute 48

Ilmiddotlustracioacute 30 Jpcap inici instalmiddotlacioacute 49

Ilmiddotlustracioacute 31 Jpcap benvinguda instalmiddotlador 49

Ilmiddotlustracioacute 32 Jpcap acceptacioacute de llicencia 50

Ilmiddotlustracioacute 33 Jpcap proceacutes dinstalmiddotlacioacute 50

Ilmiddotlustracioacute 34 Jpcap finalitzacioacute del proceacutes 51

Iacutendex de Taules

Taula 1 Dates dentrega 4

Taula 2 Classes IP 12

Taula 3 Rangs dadreces privades 12

Taula 4 Respostes ICMP 14

Taula 5 Servidors Whois dels diferents continents 16

Taula 6 Taula de camps de IP-Api 20

Taula 7 Missatges derror de Ip-api 20

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

1

1 Introduccioacute

Els inicis drsquoInternet van ser a la degravecada dels anys 1960 als Estats Units quan

lrsquoorganitzacioacute ARPA (Advanced Research Project Research) va crear una xarxa per tal drsquoaprofitar

millor el potencial dels ordinadors i alhora permetre que els laboratoris i investigadors poguessin

disposar dels seus propis equips Per tal drsquoevitar duplicitats en la feina i pegraverdua de recursos es

va crear la xarxa ARPAnet la qual va permetre a aquests estar interconnectats i aprofitar millor

els recursos Poc a poc es van anar afegint a aquesta xarxa meacutes organitzacions governamentals

i universitats aquesta xarxa oferia una interconnexioacute drsquoalta velocitat entre tots els participants

i donava acceacutes a la informacioacute drsquoaltres organitzacions drsquouna manera molt eficient

Des del seu inici oficial al any 1969 quan es va fer la interconnexioacute entre les universitats

de UCLA i Stanford mitjanccedilant una xarxa commutada telefogravenica fins als anys 1990 es pot

considerar que ARPAnet va estar en constant construccioacute perograve eacutes a partir dels anys 1990 que

amb la introduccioacute de noves facilitats de connexioacute i eines gragravefiques simples per facilitar lrsquouacutes de

la xarxa aquesta es popularitza Tambeacute en el any 1990 es crea el primer client Web anomenat

WolrdWideWeb (www) i comenccedila a anomenar-se Internet tal com es coneix actualment

Actualment a Internet es calcula que hi ha 4021 mil milions drsquousuaris la xarxa srsquoha

globalitzat i aquest nuacutemero representa el 53 de la poblacioacute mundial La xarxa srsquoha convertit

per a molta gent i negocis en un punt drsquointerconnexioacute entre aquests i cada vegada han anat

sorgint noves necessitats a lrsquohora de millorar aquesta relacioacute

Una drsquoaquestes necessitats eacutes poder saber des de quin punt geogragravefic accedeix un usuari

o organitzacioacute La xarxa ha proporcionat als usuaris la possibilitat drsquoaccedir en principi a

qualsevol recurs independentment drsquoon es troba aquest perograve pot ser que aquest recurs no hagi

de ser accessible per a segons quines regions geogragravefiques Per exemple pot existir una tenda

virtual que no tingui distribucioacute per a Agravesia o que per a segons quins paiumlsos ofereixi uns productes

diferents llavors apareix la necessitat de saber des de quin punt geogragravefic estagrave accedint aquest

usuari per tal drsquooptimitzar els recursos drsquoaquest determinat servei Altra possibilitat pot ser per

motius de seguretat

Es en aquest punt apareix la necessitat de la Geolocalitzacioacute IP aquesta es tracta

bagravesicament de relacionar una adreccedila IP amb un punt concret de la geografia mundial Per cobrir

aquesta necessitat srsquohan desenvolupat diversos serveis dedicats a facilitar amb major o menor

exactitud les dades de geolocalitzacioacute de les adreces IP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

2

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i aportacioacute del TFG

Una de les parts que sempre mrsquoha interessat dels entorns informagravetics ha sigut com

srsquointerconnecten els equips i comparteixen la informacioacute entre ells Internet ha aportat als

equips informagravetics la possibilitat de compartir informacioacute eliminant moltes fronteres

geogragravefiques eacutes per aquest motiu que vaig triar aquest camp per desenvolupar el Treball de Fi

de Grau

Durant lrsquoestudi de les diferents assignatures de Xarxes de Computadors he pogut

aprendre moltes de les caracteriacutestiques drsquoaquestes comunicacions entre equips des del punt

concret drsquoun equip fins al funcionament drsquouna xarxa complexa com pot ser una Intranet o

Internet Tambeacute he apregraves el funcionament dels diferents protocols de comunicacioacute i els

elements importants que formen una xarxa com soacuten els encaminadors els commutadors o els

servidors de domini (DNS)

Eacutes a partir drsquoaquest estudi que apareix la possibilitat drsquoampliar els coneixements de com

srsquoorganitza concretament Internet i com es poden aprofitar els diferents serveis que existeixen

a la xarxa per a desenvolupar una aplicacioacute que permeti geolocalitzar els equips dintre del moacuten

fiacutesic eacutes a dir en un mapa geogragravefic

Aquest Treball de Fi de Grau parteix dels coneixements previs sobre xarxes i preteacuten

ampliar aquests coneixements aportant una visioacute de les possibilitats que ofereix la xarxa per a

utilitzar recursos i combinar-los per a elaborar un producte que a la vegada ofereixi un servei

concret en aquest cas la geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Lrsquoaportacioacute que

preteacuten eacutes la clarificacioacute de conceptes de geolocalitzacioacute i protocols de comunicacioacute que

permeten la identificacioacute dels nodes existents en una comunicacioacute en una xarxa

12 Objectius del TFG

Lrsquoobjectiu drsquoaquest TFG eacutes crear un producte que donat un nom de host drsquoInternet

proporcioni la informacioacute corresponent a aquest a meacutes de mostrar per quins nodes han de

passar els paquets per tal drsquoaccedir-hi La informacioacute relativa als nodes seragrave la seva

geolocalitzacioacute dins drsquoun mapa mundi i aquests aniran enllaccedilats amb una liacutenia per a mostrar el

camiacute de la informacioacute

Per tal de portar a terme aquestes accions lrsquoaplicacioacute ha de realitzar diferents processos

enllaccedilats entre si Primer srsquoha drsquoimplementar un megravetode que retorni la informacioacute dels nodes a

mode de traceroute tot creant els paquets que utilitza el protocol ICMP per a realitzar aquest

A continuacioacute srsquohauran de situar aquests nodes en unes coordenades geogragravefiques per tal de

finalment poder situar-los dintre drsquoun mapa mundi A banda drsquoaquest proceacutes de geolocalitzacioacute

es vol fer una consulta al servei Whois per tal que retorni tota la informacioacute relativa al nom de

host indicat si lrsquousuari ho demana

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

3

Els objectius generals soacuten els seguumlents

Crear un producte capaccedil drsquoidentificar els nodes que hi ha entre lrsquoequip des drsquoon srsquoestagrave

executant i un nom de host o adreccedila IP drsquoInternet

Implementar dintre del producte la possibilitat de consultar les dades referents al host

de destiacute

Ubicar dintre drsquoun mapa mundi els nodes identificats amb anterioritat com a nodes

entre lrsquoequip origen i el host de destiacute

Realitzar la memograveria que reculli la documentacioacute elaborada durant tot el proceacutes del

projecte aixiacute com lrsquoexplicacioacute del funcionament drsquoaquest

Aprofundir a nivell teograveric i pragravectic en els conceptes relacionats amb el projecte com

poden ser lrsquoestructura dels datagrames ICMP i les seves utilitats les diferents

possibilitats que existeixen per tal de geolocalitzar un host determinat o la

implementacioacute drsquoaquests en el llenguatge de programacioacute triat

13 Enfocament i megravetode seguit

A lrsquohora de planificar la construccioacute drsquoaquesta aplicacioacute que ha de mostrar la ruta que hi

ha entre dos equips un drsquoorigen i un altre de destiacute srsquoha optat per dividir el conjunt de

funcionalitats que srsquohan de implementar i treballar cadascuna drsquoelles per separat perograve alhora

drsquouna manera incremental Eacutes a dir srsquoha de resoldre cada funcionalitat per separat i una vegada

es teacute implementada aquesta ens proporcionava la base de la seguumlent

Les funcionalitats necessagraveries per completar el projecte soacuten les seguumlents

Realitzacioacute de la traccedila entre el node origen i el destiacute

Obtencioacute de tota la informacioacute necessagraveria dels nodes com eacutes la latitud i la longitud

Mostrar aquests nodes en una taula

Visualitzacioacute drsquoaquests nodes juntament amb la ruta que realitzen els paquets en un

mapa

Aixiacute doncs primerament caldragrave construir el megravetode que permeti realitzar la traccedila entre

nodes per tal drsquoobtenir la informacioacute bagravesica drsquoaquests

Una vegada es tingui els nodes identificats amb la informacioacute obtinguda en el pas

anterior caldragrave consultar en algun servei la informacioacute concreta de geolocalitzacioacute de cada node

i afegir-la a la informacioacute que ja es teacute

A continuacioacute cal mostrar la informacioacute obtinguda de cada node en una taula que

permeti a lrsquousuari poder revisar aquesta informacioacute drsquouna manera fagravecil i intuiumltiva Aixograve es faragrave

mitjanccedilant una taula que recolliragrave totes les dades obtingudes

Finalment utilitzant les dades obtingudes en el pas anterior caldragrave utilitzar un servei de

mapes per a mostrar-la correctament en un mapa de tal manera que tambeacute quedi representada

la ruta entre nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 4: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

iii

Abstract

This report includes the process of preparing a product for the geolocation of

equipment through its IP address In order to achieve the goal this process

has been divided into four blocks

The first one focuses on collecting and explaining all those elements that

regulate and shape the network such as communication protocols or how to

distribute IP address of the network

The second one develops an analysis of the resources that can be used to

develop the product In particular we analyze different IP geolocation services

that can be found on the network some of the programming languages that

can be used to accomplish the purpose of the application are also evaluated

some analyzes are also made Map representation services on the Internet

such as Google Maps and Open Street Maps Finally an explanation of the

options chosen to implement the application is made

In the third block we explain how the product was designed taking into account

the different aspects that an application must cover Also the more specific

design part is included such as the class diagram that shows how the

application is to be implemented

Finally the fourth block gives an explanation of how the design has been put

into practice This is divided into the process to find the intermediate nodes or

trace the query for the information of each node and how the route and nodes

found have been represented through a map service

Paraules clau

adreccedilament IP geolocalitzacioacute DNS Java Google ping traceroute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

iv

Iacutendex

1 Introduccioacute 1

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i

aportacioacute del TFG 2

12 Objectius del TFG 2

13 Enfocament i megravetode seguit 3

14 Planificacioacute del projecte 4

15 Productes obtinguts 7

16 Breu descripcioacute dels altres capiacutetols de la memograveria 7

2 Marc teograveric 9

21 Encapsulament i la pila TCPIP 9

22 Adreccedilament IPv4 10

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet) 12

24 Ping 14

25 Traceroute 15

26 Domain Name System (DNS) 15

27 Whois 15

3 Anagravelisi de recursos 17

31 Geolocalitzacioacute IP 17

32 Llenguatges de programacioacute 21

33 Serveis de Mapes 23

34 Eleccioacute de recursos 26

4 Disseny de lrsquoaplicacioacute 28

41 Cas drsquouacutes 28

42 Diagrama drsquoEstats 28

43 Diagrama de sequumlegravencia 30

44 Diagrama de classes 31

45 Disseny de les finestres 33

5 Implementacioacute del producte 35

51 Creacioacute de paquets i traccedila 35

52 Geolocalitzacioacute IP dels nodes 37

53 Mostrar informacioacute en un mapa 38

54 Informacioacute Whois 39

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

v

55 Entorn gragravefic de lrsquoaplicacioacute 40

6 Conclusions 43

7 Glossari 44

8 Bibliografia 45

9 Annexos 46

91 Annex A Manual de instalmiddotlacioacute 46

92 Annex B Manual drsquousuari 52

Iacutendex drsquoIlmiddotlustracions

Ilmiddotlustracioacute 1 Diagrama de Gantt 7

Ilmiddotlustracioacute 2 Pila TCPIP 10

Ilmiddotlustracioacute 3 Estagravendard OSI 10

Ilmiddotlustracioacute 4 Estructura datagrama IP 12

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP 13

Ilmiddotlustracioacute 6 Tarifes MaxMind 18

Ilmiddotlustracioacute 7 Tarifes IP2Location 18

Ilmiddotlustracioacute 8 Tarifes Ipinfoio 19

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps 21

Ilmiddotlustracioacute 10 Entorn PyCharm 22

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82 23

Ilmiddotlustracioacute 12 Open Street Map 24

Ilmiddotlustracioacute 13 Google Static Maps API 25

Ilmiddotlustracioacute 14 Google Maps JavaScript API 25

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript 26

Ilmiddotlustracioacute 16 Cas dus 28

Ilmiddotlustracioacute 17 Diagrama destats 29

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia 30

Ilmiddotlustracioacute 19 Diagrama de classes 31

Ilmiddotlustracioacute 20 Disseny finestra principal 33

Ilmiddotlustracioacute 21 Finestra Whois 39

Ilmiddotlustracioacute 22 Finestra principal (Inici) 40

Ilmiddotlustracioacute 24 Finestra principal durant el proceacutes de traccedila 41

Ilmiddotlustracioacute 25 Pantalla principal al finalitzar el proceacutes de traccedila 41

Ilmiddotlustracioacute 26 WinPcap inici dinstalmiddotlacioacute 47

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

vi

Ilmiddotlustracioacute 27 WinPcap acceptacioacute de llicencia 47

Ilmiddotlustracioacute 28 WinPcap configuracioacute 48

Ilmiddotlustracioacute 29 WinPcap finalitzacioacute dinstalmiddotlacioacute 48

Ilmiddotlustracioacute 30 Jpcap inici instalmiddotlacioacute 49

Ilmiddotlustracioacute 31 Jpcap benvinguda instalmiddotlador 49

Ilmiddotlustracioacute 32 Jpcap acceptacioacute de llicencia 50

Ilmiddotlustracioacute 33 Jpcap proceacutes dinstalmiddotlacioacute 50

Ilmiddotlustracioacute 34 Jpcap finalitzacioacute del proceacutes 51

Iacutendex de Taules

Taula 1 Dates dentrega 4

Taula 2 Classes IP 12

Taula 3 Rangs dadreces privades 12

Taula 4 Respostes ICMP 14

Taula 5 Servidors Whois dels diferents continents 16

Taula 6 Taula de camps de IP-Api 20

Taula 7 Missatges derror de Ip-api 20

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

1

1 Introduccioacute

Els inicis drsquoInternet van ser a la degravecada dels anys 1960 als Estats Units quan

lrsquoorganitzacioacute ARPA (Advanced Research Project Research) va crear una xarxa per tal drsquoaprofitar

millor el potencial dels ordinadors i alhora permetre que els laboratoris i investigadors poguessin

disposar dels seus propis equips Per tal drsquoevitar duplicitats en la feina i pegraverdua de recursos es

va crear la xarxa ARPAnet la qual va permetre a aquests estar interconnectats i aprofitar millor

els recursos Poc a poc es van anar afegint a aquesta xarxa meacutes organitzacions governamentals

i universitats aquesta xarxa oferia una interconnexioacute drsquoalta velocitat entre tots els participants

i donava acceacutes a la informacioacute drsquoaltres organitzacions drsquouna manera molt eficient

Des del seu inici oficial al any 1969 quan es va fer la interconnexioacute entre les universitats

de UCLA i Stanford mitjanccedilant una xarxa commutada telefogravenica fins als anys 1990 es pot

considerar que ARPAnet va estar en constant construccioacute perograve eacutes a partir dels anys 1990 que

amb la introduccioacute de noves facilitats de connexioacute i eines gragravefiques simples per facilitar lrsquouacutes de

la xarxa aquesta es popularitza Tambeacute en el any 1990 es crea el primer client Web anomenat

WolrdWideWeb (www) i comenccedila a anomenar-se Internet tal com es coneix actualment

Actualment a Internet es calcula que hi ha 4021 mil milions drsquousuaris la xarxa srsquoha

globalitzat i aquest nuacutemero representa el 53 de la poblacioacute mundial La xarxa srsquoha convertit

per a molta gent i negocis en un punt drsquointerconnexioacute entre aquests i cada vegada han anat

sorgint noves necessitats a lrsquohora de millorar aquesta relacioacute

Una drsquoaquestes necessitats eacutes poder saber des de quin punt geogragravefic accedeix un usuari

o organitzacioacute La xarxa ha proporcionat als usuaris la possibilitat drsquoaccedir en principi a

qualsevol recurs independentment drsquoon es troba aquest perograve pot ser que aquest recurs no hagi

de ser accessible per a segons quines regions geogragravefiques Per exemple pot existir una tenda

virtual que no tingui distribucioacute per a Agravesia o que per a segons quins paiumlsos ofereixi uns productes

diferents llavors apareix la necessitat de saber des de quin punt geogragravefic estagrave accedint aquest

usuari per tal drsquooptimitzar els recursos drsquoaquest determinat servei Altra possibilitat pot ser per

motius de seguretat

Es en aquest punt apareix la necessitat de la Geolocalitzacioacute IP aquesta es tracta

bagravesicament de relacionar una adreccedila IP amb un punt concret de la geografia mundial Per cobrir

aquesta necessitat srsquohan desenvolupat diversos serveis dedicats a facilitar amb major o menor

exactitud les dades de geolocalitzacioacute de les adreces IP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

2

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i aportacioacute del TFG

Una de les parts que sempre mrsquoha interessat dels entorns informagravetics ha sigut com

srsquointerconnecten els equips i comparteixen la informacioacute entre ells Internet ha aportat als

equips informagravetics la possibilitat de compartir informacioacute eliminant moltes fronteres

geogragravefiques eacutes per aquest motiu que vaig triar aquest camp per desenvolupar el Treball de Fi

de Grau

Durant lrsquoestudi de les diferents assignatures de Xarxes de Computadors he pogut

aprendre moltes de les caracteriacutestiques drsquoaquestes comunicacions entre equips des del punt

concret drsquoun equip fins al funcionament drsquouna xarxa complexa com pot ser una Intranet o

Internet Tambeacute he apregraves el funcionament dels diferents protocols de comunicacioacute i els

elements importants que formen una xarxa com soacuten els encaminadors els commutadors o els

servidors de domini (DNS)

Eacutes a partir drsquoaquest estudi que apareix la possibilitat drsquoampliar els coneixements de com

srsquoorganitza concretament Internet i com es poden aprofitar els diferents serveis que existeixen

a la xarxa per a desenvolupar una aplicacioacute que permeti geolocalitzar els equips dintre del moacuten

fiacutesic eacutes a dir en un mapa geogragravefic

Aquest Treball de Fi de Grau parteix dels coneixements previs sobre xarxes i preteacuten

ampliar aquests coneixements aportant una visioacute de les possibilitats que ofereix la xarxa per a

utilitzar recursos i combinar-los per a elaborar un producte que a la vegada ofereixi un servei

concret en aquest cas la geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Lrsquoaportacioacute que

preteacuten eacutes la clarificacioacute de conceptes de geolocalitzacioacute i protocols de comunicacioacute que

permeten la identificacioacute dels nodes existents en una comunicacioacute en una xarxa

12 Objectius del TFG

Lrsquoobjectiu drsquoaquest TFG eacutes crear un producte que donat un nom de host drsquoInternet

proporcioni la informacioacute corresponent a aquest a meacutes de mostrar per quins nodes han de

passar els paquets per tal drsquoaccedir-hi La informacioacute relativa als nodes seragrave la seva

geolocalitzacioacute dins drsquoun mapa mundi i aquests aniran enllaccedilats amb una liacutenia per a mostrar el

camiacute de la informacioacute

Per tal de portar a terme aquestes accions lrsquoaplicacioacute ha de realitzar diferents processos

enllaccedilats entre si Primer srsquoha drsquoimplementar un megravetode que retorni la informacioacute dels nodes a

mode de traceroute tot creant els paquets que utilitza el protocol ICMP per a realitzar aquest

A continuacioacute srsquohauran de situar aquests nodes en unes coordenades geogragravefiques per tal de

finalment poder situar-los dintre drsquoun mapa mundi A banda drsquoaquest proceacutes de geolocalitzacioacute

es vol fer una consulta al servei Whois per tal que retorni tota la informacioacute relativa al nom de

host indicat si lrsquousuari ho demana

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

3

Els objectius generals soacuten els seguumlents

Crear un producte capaccedil drsquoidentificar els nodes que hi ha entre lrsquoequip des drsquoon srsquoestagrave

executant i un nom de host o adreccedila IP drsquoInternet

Implementar dintre del producte la possibilitat de consultar les dades referents al host

de destiacute

Ubicar dintre drsquoun mapa mundi els nodes identificats amb anterioritat com a nodes

entre lrsquoequip origen i el host de destiacute

Realitzar la memograveria que reculli la documentacioacute elaborada durant tot el proceacutes del

projecte aixiacute com lrsquoexplicacioacute del funcionament drsquoaquest

Aprofundir a nivell teograveric i pragravectic en els conceptes relacionats amb el projecte com

poden ser lrsquoestructura dels datagrames ICMP i les seves utilitats les diferents

possibilitats que existeixen per tal de geolocalitzar un host determinat o la

implementacioacute drsquoaquests en el llenguatge de programacioacute triat

13 Enfocament i megravetode seguit

A lrsquohora de planificar la construccioacute drsquoaquesta aplicacioacute que ha de mostrar la ruta que hi

ha entre dos equips un drsquoorigen i un altre de destiacute srsquoha optat per dividir el conjunt de

funcionalitats que srsquohan de implementar i treballar cadascuna drsquoelles per separat perograve alhora

drsquouna manera incremental Eacutes a dir srsquoha de resoldre cada funcionalitat per separat i una vegada

es teacute implementada aquesta ens proporcionava la base de la seguumlent

Les funcionalitats necessagraveries per completar el projecte soacuten les seguumlents

Realitzacioacute de la traccedila entre el node origen i el destiacute

Obtencioacute de tota la informacioacute necessagraveria dels nodes com eacutes la latitud i la longitud

Mostrar aquests nodes en una taula

Visualitzacioacute drsquoaquests nodes juntament amb la ruta que realitzen els paquets en un

mapa

Aixiacute doncs primerament caldragrave construir el megravetode que permeti realitzar la traccedila entre

nodes per tal drsquoobtenir la informacioacute bagravesica drsquoaquests

Una vegada es tingui els nodes identificats amb la informacioacute obtinguda en el pas

anterior caldragrave consultar en algun servei la informacioacute concreta de geolocalitzacioacute de cada node

i afegir-la a la informacioacute que ja es teacute

A continuacioacute cal mostrar la informacioacute obtinguda de cada node en una taula que

permeti a lrsquousuari poder revisar aquesta informacioacute drsquouna manera fagravecil i intuiumltiva Aixograve es faragrave

mitjanccedilant una taula que recolliragrave totes les dades obtingudes

Finalment utilitzant les dades obtingudes en el pas anterior caldragrave utilitzar un servei de

mapes per a mostrar-la correctament en un mapa de tal manera que tambeacute quedi representada

la ruta entre nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 5: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

iv

Iacutendex

1 Introduccioacute 1

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i

aportacioacute del TFG 2

12 Objectius del TFG 2

13 Enfocament i megravetode seguit 3

14 Planificacioacute del projecte 4

15 Productes obtinguts 7

16 Breu descripcioacute dels altres capiacutetols de la memograveria 7

2 Marc teograveric 9

21 Encapsulament i la pila TCPIP 9

22 Adreccedilament IPv4 10

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet) 12

24 Ping 14

25 Traceroute 15

26 Domain Name System (DNS) 15

27 Whois 15

3 Anagravelisi de recursos 17

31 Geolocalitzacioacute IP 17

32 Llenguatges de programacioacute 21

33 Serveis de Mapes 23

34 Eleccioacute de recursos 26

4 Disseny de lrsquoaplicacioacute 28

41 Cas drsquouacutes 28

42 Diagrama drsquoEstats 28

43 Diagrama de sequumlegravencia 30

44 Diagrama de classes 31

45 Disseny de les finestres 33

5 Implementacioacute del producte 35

51 Creacioacute de paquets i traccedila 35

52 Geolocalitzacioacute IP dels nodes 37

53 Mostrar informacioacute en un mapa 38

54 Informacioacute Whois 39

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

v

55 Entorn gragravefic de lrsquoaplicacioacute 40

6 Conclusions 43

7 Glossari 44

8 Bibliografia 45

9 Annexos 46

91 Annex A Manual de instalmiddotlacioacute 46

92 Annex B Manual drsquousuari 52

Iacutendex drsquoIlmiddotlustracions

Ilmiddotlustracioacute 1 Diagrama de Gantt 7

Ilmiddotlustracioacute 2 Pila TCPIP 10

Ilmiddotlustracioacute 3 Estagravendard OSI 10

Ilmiddotlustracioacute 4 Estructura datagrama IP 12

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP 13

Ilmiddotlustracioacute 6 Tarifes MaxMind 18

Ilmiddotlustracioacute 7 Tarifes IP2Location 18

Ilmiddotlustracioacute 8 Tarifes Ipinfoio 19

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps 21

Ilmiddotlustracioacute 10 Entorn PyCharm 22

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82 23

Ilmiddotlustracioacute 12 Open Street Map 24

Ilmiddotlustracioacute 13 Google Static Maps API 25

Ilmiddotlustracioacute 14 Google Maps JavaScript API 25

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript 26

Ilmiddotlustracioacute 16 Cas dus 28

Ilmiddotlustracioacute 17 Diagrama destats 29

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia 30

Ilmiddotlustracioacute 19 Diagrama de classes 31

Ilmiddotlustracioacute 20 Disseny finestra principal 33

Ilmiddotlustracioacute 21 Finestra Whois 39

Ilmiddotlustracioacute 22 Finestra principal (Inici) 40

Ilmiddotlustracioacute 24 Finestra principal durant el proceacutes de traccedila 41

Ilmiddotlustracioacute 25 Pantalla principal al finalitzar el proceacutes de traccedila 41

Ilmiddotlustracioacute 26 WinPcap inici dinstalmiddotlacioacute 47

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

vi

Ilmiddotlustracioacute 27 WinPcap acceptacioacute de llicencia 47

Ilmiddotlustracioacute 28 WinPcap configuracioacute 48

Ilmiddotlustracioacute 29 WinPcap finalitzacioacute dinstalmiddotlacioacute 48

Ilmiddotlustracioacute 30 Jpcap inici instalmiddotlacioacute 49

Ilmiddotlustracioacute 31 Jpcap benvinguda instalmiddotlador 49

Ilmiddotlustracioacute 32 Jpcap acceptacioacute de llicencia 50

Ilmiddotlustracioacute 33 Jpcap proceacutes dinstalmiddotlacioacute 50

Ilmiddotlustracioacute 34 Jpcap finalitzacioacute del proceacutes 51

Iacutendex de Taules

Taula 1 Dates dentrega 4

Taula 2 Classes IP 12

Taula 3 Rangs dadreces privades 12

Taula 4 Respostes ICMP 14

Taula 5 Servidors Whois dels diferents continents 16

Taula 6 Taula de camps de IP-Api 20

Taula 7 Missatges derror de Ip-api 20

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

1

1 Introduccioacute

Els inicis drsquoInternet van ser a la degravecada dels anys 1960 als Estats Units quan

lrsquoorganitzacioacute ARPA (Advanced Research Project Research) va crear una xarxa per tal drsquoaprofitar

millor el potencial dels ordinadors i alhora permetre que els laboratoris i investigadors poguessin

disposar dels seus propis equips Per tal drsquoevitar duplicitats en la feina i pegraverdua de recursos es

va crear la xarxa ARPAnet la qual va permetre a aquests estar interconnectats i aprofitar millor

els recursos Poc a poc es van anar afegint a aquesta xarxa meacutes organitzacions governamentals

i universitats aquesta xarxa oferia una interconnexioacute drsquoalta velocitat entre tots els participants

i donava acceacutes a la informacioacute drsquoaltres organitzacions drsquouna manera molt eficient

Des del seu inici oficial al any 1969 quan es va fer la interconnexioacute entre les universitats

de UCLA i Stanford mitjanccedilant una xarxa commutada telefogravenica fins als anys 1990 es pot

considerar que ARPAnet va estar en constant construccioacute perograve eacutes a partir dels anys 1990 que

amb la introduccioacute de noves facilitats de connexioacute i eines gragravefiques simples per facilitar lrsquouacutes de

la xarxa aquesta es popularitza Tambeacute en el any 1990 es crea el primer client Web anomenat

WolrdWideWeb (www) i comenccedila a anomenar-se Internet tal com es coneix actualment

Actualment a Internet es calcula que hi ha 4021 mil milions drsquousuaris la xarxa srsquoha

globalitzat i aquest nuacutemero representa el 53 de la poblacioacute mundial La xarxa srsquoha convertit

per a molta gent i negocis en un punt drsquointerconnexioacute entre aquests i cada vegada han anat

sorgint noves necessitats a lrsquohora de millorar aquesta relacioacute

Una drsquoaquestes necessitats eacutes poder saber des de quin punt geogragravefic accedeix un usuari

o organitzacioacute La xarxa ha proporcionat als usuaris la possibilitat drsquoaccedir en principi a

qualsevol recurs independentment drsquoon es troba aquest perograve pot ser que aquest recurs no hagi

de ser accessible per a segons quines regions geogragravefiques Per exemple pot existir una tenda

virtual que no tingui distribucioacute per a Agravesia o que per a segons quins paiumlsos ofereixi uns productes

diferents llavors apareix la necessitat de saber des de quin punt geogragravefic estagrave accedint aquest

usuari per tal drsquooptimitzar els recursos drsquoaquest determinat servei Altra possibilitat pot ser per

motius de seguretat

Es en aquest punt apareix la necessitat de la Geolocalitzacioacute IP aquesta es tracta

bagravesicament de relacionar una adreccedila IP amb un punt concret de la geografia mundial Per cobrir

aquesta necessitat srsquohan desenvolupat diversos serveis dedicats a facilitar amb major o menor

exactitud les dades de geolocalitzacioacute de les adreces IP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

2

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i aportacioacute del TFG

Una de les parts que sempre mrsquoha interessat dels entorns informagravetics ha sigut com

srsquointerconnecten els equips i comparteixen la informacioacute entre ells Internet ha aportat als

equips informagravetics la possibilitat de compartir informacioacute eliminant moltes fronteres

geogragravefiques eacutes per aquest motiu que vaig triar aquest camp per desenvolupar el Treball de Fi

de Grau

Durant lrsquoestudi de les diferents assignatures de Xarxes de Computadors he pogut

aprendre moltes de les caracteriacutestiques drsquoaquestes comunicacions entre equips des del punt

concret drsquoun equip fins al funcionament drsquouna xarxa complexa com pot ser una Intranet o

Internet Tambeacute he apregraves el funcionament dels diferents protocols de comunicacioacute i els

elements importants que formen una xarxa com soacuten els encaminadors els commutadors o els

servidors de domini (DNS)

Eacutes a partir drsquoaquest estudi que apareix la possibilitat drsquoampliar els coneixements de com

srsquoorganitza concretament Internet i com es poden aprofitar els diferents serveis que existeixen

a la xarxa per a desenvolupar una aplicacioacute que permeti geolocalitzar els equips dintre del moacuten

fiacutesic eacutes a dir en un mapa geogragravefic

Aquest Treball de Fi de Grau parteix dels coneixements previs sobre xarxes i preteacuten

ampliar aquests coneixements aportant una visioacute de les possibilitats que ofereix la xarxa per a

utilitzar recursos i combinar-los per a elaborar un producte que a la vegada ofereixi un servei

concret en aquest cas la geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Lrsquoaportacioacute que

preteacuten eacutes la clarificacioacute de conceptes de geolocalitzacioacute i protocols de comunicacioacute que

permeten la identificacioacute dels nodes existents en una comunicacioacute en una xarxa

12 Objectius del TFG

Lrsquoobjectiu drsquoaquest TFG eacutes crear un producte que donat un nom de host drsquoInternet

proporcioni la informacioacute corresponent a aquest a meacutes de mostrar per quins nodes han de

passar els paquets per tal drsquoaccedir-hi La informacioacute relativa als nodes seragrave la seva

geolocalitzacioacute dins drsquoun mapa mundi i aquests aniran enllaccedilats amb una liacutenia per a mostrar el

camiacute de la informacioacute

Per tal de portar a terme aquestes accions lrsquoaplicacioacute ha de realitzar diferents processos

enllaccedilats entre si Primer srsquoha drsquoimplementar un megravetode que retorni la informacioacute dels nodes a

mode de traceroute tot creant els paquets que utilitza el protocol ICMP per a realitzar aquest

A continuacioacute srsquohauran de situar aquests nodes en unes coordenades geogragravefiques per tal de

finalment poder situar-los dintre drsquoun mapa mundi A banda drsquoaquest proceacutes de geolocalitzacioacute

es vol fer una consulta al servei Whois per tal que retorni tota la informacioacute relativa al nom de

host indicat si lrsquousuari ho demana

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

3

Els objectius generals soacuten els seguumlents

Crear un producte capaccedil drsquoidentificar els nodes que hi ha entre lrsquoequip des drsquoon srsquoestagrave

executant i un nom de host o adreccedila IP drsquoInternet

Implementar dintre del producte la possibilitat de consultar les dades referents al host

de destiacute

Ubicar dintre drsquoun mapa mundi els nodes identificats amb anterioritat com a nodes

entre lrsquoequip origen i el host de destiacute

Realitzar la memograveria que reculli la documentacioacute elaborada durant tot el proceacutes del

projecte aixiacute com lrsquoexplicacioacute del funcionament drsquoaquest

Aprofundir a nivell teograveric i pragravectic en els conceptes relacionats amb el projecte com

poden ser lrsquoestructura dels datagrames ICMP i les seves utilitats les diferents

possibilitats que existeixen per tal de geolocalitzar un host determinat o la

implementacioacute drsquoaquests en el llenguatge de programacioacute triat

13 Enfocament i megravetode seguit

A lrsquohora de planificar la construccioacute drsquoaquesta aplicacioacute que ha de mostrar la ruta que hi

ha entre dos equips un drsquoorigen i un altre de destiacute srsquoha optat per dividir el conjunt de

funcionalitats que srsquohan de implementar i treballar cadascuna drsquoelles per separat perograve alhora

drsquouna manera incremental Eacutes a dir srsquoha de resoldre cada funcionalitat per separat i una vegada

es teacute implementada aquesta ens proporcionava la base de la seguumlent

Les funcionalitats necessagraveries per completar el projecte soacuten les seguumlents

Realitzacioacute de la traccedila entre el node origen i el destiacute

Obtencioacute de tota la informacioacute necessagraveria dels nodes com eacutes la latitud i la longitud

Mostrar aquests nodes en una taula

Visualitzacioacute drsquoaquests nodes juntament amb la ruta que realitzen els paquets en un

mapa

Aixiacute doncs primerament caldragrave construir el megravetode que permeti realitzar la traccedila entre

nodes per tal drsquoobtenir la informacioacute bagravesica drsquoaquests

Una vegada es tingui els nodes identificats amb la informacioacute obtinguda en el pas

anterior caldragrave consultar en algun servei la informacioacute concreta de geolocalitzacioacute de cada node

i afegir-la a la informacioacute que ja es teacute

A continuacioacute cal mostrar la informacioacute obtinguda de cada node en una taula que

permeti a lrsquousuari poder revisar aquesta informacioacute drsquouna manera fagravecil i intuiumltiva Aixograve es faragrave

mitjanccedilant una taula que recolliragrave totes les dades obtingudes

Finalment utilitzant les dades obtingudes en el pas anterior caldragrave utilitzar un servei de

mapes per a mostrar-la correctament en un mapa de tal manera que tambeacute quedi representada

la ruta entre nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 6: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

v

55 Entorn gragravefic de lrsquoaplicacioacute 40

6 Conclusions 43

7 Glossari 44

8 Bibliografia 45

9 Annexos 46

91 Annex A Manual de instalmiddotlacioacute 46

92 Annex B Manual drsquousuari 52

Iacutendex drsquoIlmiddotlustracions

Ilmiddotlustracioacute 1 Diagrama de Gantt 7

Ilmiddotlustracioacute 2 Pila TCPIP 10

Ilmiddotlustracioacute 3 Estagravendard OSI 10

Ilmiddotlustracioacute 4 Estructura datagrama IP 12

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP 13

Ilmiddotlustracioacute 6 Tarifes MaxMind 18

Ilmiddotlustracioacute 7 Tarifes IP2Location 18

Ilmiddotlustracioacute 8 Tarifes Ipinfoio 19

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps 21

Ilmiddotlustracioacute 10 Entorn PyCharm 22

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82 23

Ilmiddotlustracioacute 12 Open Street Map 24

Ilmiddotlustracioacute 13 Google Static Maps API 25

Ilmiddotlustracioacute 14 Google Maps JavaScript API 25

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript 26

Ilmiddotlustracioacute 16 Cas dus 28

Ilmiddotlustracioacute 17 Diagrama destats 29

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia 30

Ilmiddotlustracioacute 19 Diagrama de classes 31

Ilmiddotlustracioacute 20 Disseny finestra principal 33

Ilmiddotlustracioacute 21 Finestra Whois 39

Ilmiddotlustracioacute 22 Finestra principal (Inici) 40

Ilmiddotlustracioacute 24 Finestra principal durant el proceacutes de traccedila 41

Ilmiddotlustracioacute 25 Pantalla principal al finalitzar el proceacutes de traccedila 41

Ilmiddotlustracioacute 26 WinPcap inici dinstalmiddotlacioacute 47

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

vi

Ilmiddotlustracioacute 27 WinPcap acceptacioacute de llicencia 47

Ilmiddotlustracioacute 28 WinPcap configuracioacute 48

Ilmiddotlustracioacute 29 WinPcap finalitzacioacute dinstalmiddotlacioacute 48

Ilmiddotlustracioacute 30 Jpcap inici instalmiddotlacioacute 49

Ilmiddotlustracioacute 31 Jpcap benvinguda instalmiddotlador 49

Ilmiddotlustracioacute 32 Jpcap acceptacioacute de llicencia 50

Ilmiddotlustracioacute 33 Jpcap proceacutes dinstalmiddotlacioacute 50

Ilmiddotlustracioacute 34 Jpcap finalitzacioacute del proceacutes 51

Iacutendex de Taules

Taula 1 Dates dentrega 4

Taula 2 Classes IP 12

Taula 3 Rangs dadreces privades 12

Taula 4 Respostes ICMP 14

Taula 5 Servidors Whois dels diferents continents 16

Taula 6 Taula de camps de IP-Api 20

Taula 7 Missatges derror de Ip-api 20

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

1

1 Introduccioacute

Els inicis drsquoInternet van ser a la degravecada dels anys 1960 als Estats Units quan

lrsquoorganitzacioacute ARPA (Advanced Research Project Research) va crear una xarxa per tal drsquoaprofitar

millor el potencial dels ordinadors i alhora permetre que els laboratoris i investigadors poguessin

disposar dels seus propis equips Per tal drsquoevitar duplicitats en la feina i pegraverdua de recursos es

va crear la xarxa ARPAnet la qual va permetre a aquests estar interconnectats i aprofitar millor

els recursos Poc a poc es van anar afegint a aquesta xarxa meacutes organitzacions governamentals

i universitats aquesta xarxa oferia una interconnexioacute drsquoalta velocitat entre tots els participants

i donava acceacutes a la informacioacute drsquoaltres organitzacions drsquouna manera molt eficient

Des del seu inici oficial al any 1969 quan es va fer la interconnexioacute entre les universitats

de UCLA i Stanford mitjanccedilant una xarxa commutada telefogravenica fins als anys 1990 es pot

considerar que ARPAnet va estar en constant construccioacute perograve eacutes a partir dels anys 1990 que

amb la introduccioacute de noves facilitats de connexioacute i eines gragravefiques simples per facilitar lrsquouacutes de

la xarxa aquesta es popularitza Tambeacute en el any 1990 es crea el primer client Web anomenat

WolrdWideWeb (www) i comenccedila a anomenar-se Internet tal com es coneix actualment

Actualment a Internet es calcula que hi ha 4021 mil milions drsquousuaris la xarxa srsquoha

globalitzat i aquest nuacutemero representa el 53 de la poblacioacute mundial La xarxa srsquoha convertit

per a molta gent i negocis en un punt drsquointerconnexioacute entre aquests i cada vegada han anat

sorgint noves necessitats a lrsquohora de millorar aquesta relacioacute

Una drsquoaquestes necessitats eacutes poder saber des de quin punt geogragravefic accedeix un usuari

o organitzacioacute La xarxa ha proporcionat als usuaris la possibilitat drsquoaccedir en principi a

qualsevol recurs independentment drsquoon es troba aquest perograve pot ser que aquest recurs no hagi

de ser accessible per a segons quines regions geogragravefiques Per exemple pot existir una tenda

virtual que no tingui distribucioacute per a Agravesia o que per a segons quins paiumlsos ofereixi uns productes

diferents llavors apareix la necessitat de saber des de quin punt geogragravefic estagrave accedint aquest

usuari per tal drsquooptimitzar els recursos drsquoaquest determinat servei Altra possibilitat pot ser per

motius de seguretat

Es en aquest punt apareix la necessitat de la Geolocalitzacioacute IP aquesta es tracta

bagravesicament de relacionar una adreccedila IP amb un punt concret de la geografia mundial Per cobrir

aquesta necessitat srsquohan desenvolupat diversos serveis dedicats a facilitar amb major o menor

exactitud les dades de geolocalitzacioacute de les adreces IP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

2

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i aportacioacute del TFG

Una de les parts que sempre mrsquoha interessat dels entorns informagravetics ha sigut com

srsquointerconnecten els equips i comparteixen la informacioacute entre ells Internet ha aportat als

equips informagravetics la possibilitat de compartir informacioacute eliminant moltes fronteres

geogragravefiques eacutes per aquest motiu que vaig triar aquest camp per desenvolupar el Treball de Fi

de Grau

Durant lrsquoestudi de les diferents assignatures de Xarxes de Computadors he pogut

aprendre moltes de les caracteriacutestiques drsquoaquestes comunicacions entre equips des del punt

concret drsquoun equip fins al funcionament drsquouna xarxa complexa com pot ser una Intranet o

Internet Tambeacute he apregraves el funcionament dels diferents protocols de comunicacioacute i els

elements importants que formen una xarxa com soacuten els encaminadors els commutadors o els

servidors de domini (DNS)

Eacutes a partir drsquoaquest estudi que apareix la possibilitat drsquoampliar els coneixements de com

srsquoorganitza concretament Internet i com es poden aprofitar els diferents serveis que existeixen

a la xarxa per a desenvolupar una aplicacioacute que permeti geolocalitzar els equips dintre del moacuten

fiacutesic eacutes a dir en un mapa geogragravefic

Aquest Treball de Fi de Grau parteix dels coneixements previs sobre xarxes i preteacuten

ampliar aquests coneixements aportant una visioacute de les possibilitats que ofereix la xarxa per a

utilitzar recursos i combinar-los per a elaborar un producte que a la vegada ofereixi un servei

concret en aquest cas la geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Lrsquoaportacioacute que

preteacuten eacutes la clarificacioacute de conceptes de geolocalitzacioacute i protocols de comunicacioacute que

permeten la identificacioacute dels nodes existents en una comunicacioacute en una xarxa

12 Objectius del TFG

Lrsquoobjectiu drsquoaquest TFG eacutes crear un producte que donat un nom de host drsquoInternet

proporcioni la informacioacute corresponent a aquest a meacutes de mostrar per quins nodes han de

passar els paquets per tal drsquoaccedir-hi La informacioacute relativa als nodes seragrave la seva

geolocalitzacioacute dins drsquoun mapa mundi i aquests aniran enllaccedilats amb una liacutenia per a mostrar el

camiacute de la informacioacute

Per tal de portar a terme aquestes accions lrsquoaplicacioacute ha de realitzar diferents processos

enllaccedilats entre si Primer srsquoha drsquoimplementar un megravetode que retorni la informacioacute dels nodes a

mode de traceroute tot creant els paquets que utilitza el protocol ICMP per a realitzar aquest

A continuacioacute srsquohauran de situar aquests nodes en unes coordenades geogragravefiques per tal de

finalment poder situar-los dintre drsquoun mapa mundi A banda drsquoaquest proceacutes de geolocalitzacioacute

es vol fer una consulta al servei Whois per tal que retorni tota la informacioacute relativa al nom de

host indicat si lrsquousuari ho demana

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

3

Els objectius generals soacuten els seguumlents

Crear un producte capaccedil drsquoidentificar els nodes que hi ha entre lrsquoequip des drsquoon srsquoestagrave

executant i un nom de host o adreccedila IP drsquoInternet

Implementar dintre del producte la possibilitat de consultar les dades referents al host

de destiacute

Ubicar dintre drsquoun mapa mundi els nodes identificats amb anterioritat com a nodes

entre lrsquoequip origen i el host de destiacute

Realitzar la memograveria que reculli la documentacioacute elaborada durant tot el proceacutes del

projecte aixiacute com lrsquoexplicacioacute del funcionament drsquoaquest

Aprofundir a nivell teograveric i pragravectic en els conceptes relacionats amb el projecte com

poden ser lrsquoestructura dels datagrames ICMP i les seves utilitats les diferents

possibilitats que existeixen per tal de geolocalitzar un host determinat o la

implementacioacute drsquoaquests en el llenguatge de programacioacute triat

13 Enfocament i megravetode seguit

A lrsquohora de planificar la construccioacute drsquoaquesta aplicacioacute que ha de mostrar la ruta que hi

ha entre dos equips un drsquoorigen i un altre de destiacute srsquoha optat per dividir el conjunt de

funcionalitats que srsquohan de implementar i treballar cadascuna drsquoelles per separat perograve alhora

drsquouna manera incremental Eacutes a dir srsquoha de resoldre cada funcionalitat per separat i una vegada

es teacute implementada aquesta ens proporcionava la base de la seguumlent

Les funcionalitats necessagraveries per completar el projecte soacuten les seguumlents

Realitzacioacute de la traccedila entre el node origen i el destiacute

Obtencioacute de tota la informacioacute necessagraveria dels nodes com eacutes la latitud i la longitud

Mostrar aquests nodes en una taula

Visualitzacioacute drsquoaquests nodes juntament amb la ruta que realitzen els paquets en un

mapa

Aixiacute doncs primerament caldragrave construir el megravetode que permeti realitzar la traccedila entre

nodes per tal drsquoobtenir la informacioacute bagravesica drsquoaquests

Una vegada es tingui els nodes identificats amb la informacioacute obtinguda en el pas

anterior caldragrave consultar en algun servei la informacioacute concreta de geolocalitzacioacute de cada node

i afegir-la a la informacioacute que ja es teacute

A continuacioacute cal mostrar la informacioacute obtinguda de cada node en una taula que

permeti a lrsquousuari poder revisar aquesta informacioacute drsquouna manera fagravecil i intuiumltiva Aixograve es faragrave

mitjanccedilant una taula que recolliragrave totes les dades obtingudes

Finalment utilitzant les dades obtingudes en el pas anterior caldragrave utilitzar un servei de

mapes per a mostrar-la correctament en un mapa de tal manera que tambeacute quedi representada

la ruta entre nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 7: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

vi

Ilmiddotlustracioacute 27 WinPcap acceptacioacute de llicencia 47

Ilmiddotlustracioacute 28 WinPcap configuracioacute 48

Ilmiddotlustracioacute 29 WinPcap finalitzacioacute dinstalmiddotlacioacute 48

Ilmiddotlustracioacute 30 Jpcap inici instalmiddotlacioacute 49

Ilmiddotlustracioacute 31 Jpcap benvinguda instalmiddotlador 49

Ilmiddotlustracioacute 32 Jpcap acceptacioacute de llicencia 50

Ilmiddotlustracioacute 33 Jpcap proceacutes dinstalmiddotlacioacute 50

Ilmiddotlustracioacute 34 Jpcap finalitzacioacute del proceacutes 51

Iacutendex de Taules

Taula 1 Dates dentrega 4

Taula 2 Classes IP 12

Taula 3 Rangs dadreces privades 12

Taula 4 Respostes ICMP 14

Taula 5 Servidors Whois dels diferents continents 16

Taula 6 Taula de camps de IP-Api 20

Taula 7 Missatges derror de Ip-api 20

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

1

1 Introduccioacute

Els inicis drsquoInternet van ser a la degravecada dels anys 1960 als Estats Units quan

lrsquoorganitzacioacute ARPA (Advanced Research Project Research) va crear una xarxa per tal drsquoaprofitar

millor el potencial dels ordinadors i alhora permetre que els laboratoris i investigadors poguessin

disposar dels seus propis equips Per tal drsquoevitar duplicitats en la feina i pegraverdua de recursos es

va crear la xarxa ARPAnet la qual va permetre a aquests estar interconnectats i aprofitar millor

els recursos Poc a poc es van anar afegint a aquesta xarxa meacutes organitzacions governamentals

i universitats aquesta xarxa oferia una interconnexioacute drsquoalta velocitat entre tots els participants

i donava acceacutes a la informacioacute drsquoaltres organitzacions drsquouna manera molt eficient

Des del seu inici oficial al any 1969 quan es va fer la interconnexioacute entre les universitats

de UCLA i Stanford mitjanccedilant una xarxa commutada telefogravenica fins als anys 1990 es pot

considerar que ARPAnet va estar en constant construccioacute perograve eacutes a partir dels anys 1990 que

amb la introduccioacute de noves facilitats de connexioacute i eines gragravefiques simples per facilitar lrsquouacutes de

la xarxa aquesta es popularitza Tambeacute en el any 1990 es crea el primer client Web anomenat

WolrdWideWeb (www) i comenccedila a anomenar-se Internet tal com es coneix actualment

Actualment a Internet es calcula que hi ha 4021 mil milions drsquousuaris la xarxa srsquoha

globalitzat i aquest nuacutemero representa el 53 de la poblacioacute mundial La xarxa srsquoha convertit

per a molta gent i negocis en un punt drsquointerconnexioacute entre aquests i cada vegada han anat

sorgint noves necessitats a lrsquohora de millorar aquesta relacioacute

Una drsquoaquestes necessitats eacutes poder saber des de quin punt geogragravefic accedeix un usuari

o organitzacioacute La xarxa ha proporcionat als usuaris la possibilitat drsquoaccedir en principi a

qualsevol recurs independentment drsquoon es troba aquest perograve pot ser que aquest recurs no hagi

de ser accessible per a segons quines regions geogragravefiques Per exemple pot existir una tenda

virtual que no tingui distribucioacute per a Agravesia o que per a segons quins paiumlsos ofereixi uns productes

diferents llavors apareix la necessitat de saber des de quin punt geogragravefic estagrave accedint aquest

usuari per tal drsquooptimitzar els recursos drsquoaquest determinat servei Altra possibilitat pot ser per

motius de seguretat

Es en aquest punt apareix la necessitat de la Geolocalitzacioacute IP aquesta es tracta

bagravesicament de relacionar una adreccedila IP amb un punt concret de la geografia mundial Per cobrir

aquesta necessitat srsquohan desenvolupat diversos serveis dedicats a facilitar amb major o menor

exactitud les dades de geolocalitzacioacute de les adreces IP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

2

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i aportacioacute del TFG

Una de les parts que sempre mrsquoha interessat dels entorns informagravetics ha sigut com

srsquointerconnecten els equips i comparteixen la informacioacute entre ells Internet ha aportat als

equips informagravetics la possibilitat de compartir informacioacute eliminant moltes fronteres

geogragravefiques eacutes per aquest motiu que vaig triar aquest camp per desenvolupar el Treball de Fi

de Grau

Durant lrsquoestudi de les diferents assignatures de Xarxes de Computadors he pogut

aprendre moltes de les caracteriacutestiques drsquoaquestes comunicacions entre equips des del punt

concret drsquoun equip fins al funcionament drsquouna xarxa complexa com pot ser una Intranet o

Internet Tambeacute he apregraves el funcionament dels diferents protocols de comunicacioacute i els

elements importants que formen una xarxa com soacuten els encaminadors els commutadors o els

servidors de domini (DNS)

Eacutes a partir drsquoaquest estudi que apareix la possibilitat drsquoampliar els coneixements de com

srsquoorganitza concretament Internet i com es poden aprofitar els diferents serveis que existeixen

a la xarxa per a desenvolupar una aplicacioacute que permeti geolocalitzar els equips dintre del moacuten

fiacutesic eacutes a dir en un mapa geogragravefic

Aquest Treball de Fi de Grau parteix dels coneixements previs sobre xarxes i preteacuten

ampliar aquests coneixements aportant una visioacute de les possibilitats que ofereix la xarxa per a

utilitzar recursos i combinar-los per a elaborar un producte que a la vegada ofereixi un servei

concret en aquest cas la geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Lrsquoaportacioacute que

preteacuten eacutes la clarificacioacute de conceptes de geolocalitzacioacute i protocols de comunicacioacute que

permeten la identificacioacute dels nodes existents en una comunicacioacute en una xarxa

12 Objectius del TFG

Lrsquoobjectiu drsquoaquest TFG eacutes crear un producte que donat un nom de host drsquoInternet

proporcioni la informacioacute corresponent a aquest a meacutes de mostrar per quins nodes han de

passar els paquets per tal drsquoaccedir-hi La informacioacute relativa als nodes seragrave la seva

geolocalitzacioacute dins drsquoun mapa mundi i aquests aniran enllaccedilats amb una liacutenia per a mostrar el

camiacute de la informacioacute

Per tal de portar a terme aquestes accions lrsquoaplicacioacute ha de realitzar diferents processos

enllaccedilats entre si Primer srsquoha drsquoimplementar un megravetode que retorni la informacioacute dels nodes a

mode de traceroute tot creant els paquets que utilitza el protocol ICMP per a realitzar aquest

A continuacioacute srsquohauran de situar aquests nodes en unes coordenades geogragravefiques per tal de

finalment poder situar-los dintre drsquoun mapa mundi A banda drsquoaquest proceacutes de geolocalitzacioacute

es vol fer una consulta al servei Whois per tal que retorni tota la informacioacute relativa al nom de

host indicat si lrsquousuari ho demana

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

3

Els objectius generals soacuten els seguumlents

Crear un producte capaccedil drsquoidentificar els nodes que hi ha entre lrsquoequip des drsquoon srsquoestagrave

executant i un nom de host o adreccedila IP drsquoInternet

Implementar dintre del producte la possibilitat de consultar les dades referents al host

de destiacute

Ubicar dintre drsquoun mapa mundi els nodes identificats amb anterioritat com a nodes

entre lrsquoequip origen i el host de destiacute

Realitzar la memograveria que reculli la documentacioacute elaborada durant tot el proceacutes del

projecte aixiacute com lrsquoexplicacioacute del funcionament drsquoaquest

Aprofundir a nivell teograveric i pragravectic en els conceptes relacionats amb el projecte com

poden ser lrsquoestructura dels datagrames ICMP i les seves utilitats les diferents

possibilitats que existeixen per tal de geolocalitzar un host determinat o la

implementacioacute drsquoaquests en el llenguatge de programacioacute triat

13 Enfocament i megravetode seguit

A lrsquohora de planificar la construccioacute drsquoaquesta aplicacioacute que ha de mostrar la ruta que hi

ha entre dos equips un drsquoorigen i un altre de destiacute srsquoha optat per dividir el conjunt de

funcionalitats que srsquohan de implementar i treballar cadascuna drsquoelles per separat perograve alhora

drsquouna manera incremental Eacutes a dir srsquoha de resoldre cada funcionalitat per separat i una vegada

es teacute implementada aquesta ens proporcionava la base de la seguumlent

Les funcionalitats necessagraveries per completar el projecte soacuten les seguumlents

Realitzacioacute de la traccedila entre el node origen i el destiacute

Obtencioacute de tota la informacioacute necessagraveria dels nodes com eacutes la latitud i la longitud

Mostrar aquests nodes en una taula

Visualitzacioacute drsquoaquests nodes juntament amb la ruta que realitzen els paquets en un

mapa

Aixiacute doncs primerament caldragrave construir el megravetode que permeti realitzar la traccedila entre

nodes per tal drsquoobtenir la informacioacute bagravesica drsquoaquests

Una vegada es tingui els nodes identificats amb la informacioacute obtinguda en el pas

anterior caldragrave consultar en algun servei la informacioacute concreta de geolocalitzacioacute de cada node

i afegir-la a la informacioacute que ja es teacute

A continuacioacute cal mostrar la informacioacute obtinguda de cada node en una taula que

permeti a lrsquousuari poder revisar aquesta informacioacute drsquouna manera fagravecil i intuiumltiva Aixograve es faragrave

mitjanccedilant una taula que recolliragrave totes les dades obtingudes

Finalment utilitzant les dades obtingudes en el pas anterior caldragrave utilitzar un servei de

mapes per a mostrar-la correctament en un mapa de tal manera que tambeacute quedi representada

la ruta entre nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 8: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

1

1 Introduccioacute

Els inicis drsquoInternet van ser a la degravecada dels anys 1960 als Estats Units quan

lrsquoorganitzacioacute ARPA (Advanced Research Project Research) va crear una xarxa per tal drsquoaprofitar

millor el potencial dels ordinadors i alhora permetre que els laboratoris i investigadors poguessin

disposar dels seus propis equips Per tal drsquoevitar duplicitats en la feina i pegraverdua de recursos es

va crear la xarxa ARPAnet la qual va permetre a aquests estar interconnectats i aprofitar millor

els recursos Poc a poc es van anar afegint a aquesta xarxa meacutes organitzacions governamentals

i universitats aquesta xarxa oferia una interconnexioacute drsquoalta velocitat entre tots els participants

i donava acceacutes a la informacioacute drsquoaltres organitzacions drsquouna manera molt eficient

Des del seu inici oficial al any 1969 quan es va fer la interconnexioacute entre les universitats

de UCLA i Stanford mitjanccedilant una xarxa commutada telefogravenica fins als anys 1990 es pot

considerar que ARPAnet va estar en constant construccioacute perograve eacutes a partir dels anys 1990 que

amb la introduccioacute de noves facilitats de connexioacute i eines gragravefiques simples per facilitar lrsquouacutes de

la xarxa aquesta es popularitza Tambeacute en el any 1990 es crea el primer client Web anomenat

WolrdWideWeb (www) i comenccedila a anomenar-se Internet tal com es coneix actualment

Actualment a Internet es calcula que hi ha 4021 mil milions drsquousuaris la xarxa srsquoha

globalitzat i aquest nuacutemero representa el 53 de la poblacioacute mundial La xarxa srsquoha convertit

per a molta gent i negocis en un punt drsquointerconnexioacute entre aquests i cada vegada han anat

sorgint noves necessitats a lrsquohora de millorar aquesta relacioacute

Una drsquoaquestes necessitats eacutes poder saber des de quin punt geogragravefic accedeix un usuari

o organitzacioacute La xarxa ha proporcionat als usuaris la possibilitat drsquoaccedir en principi a

qualsevol recurs independentment drsquoon es troba aquest perograve pot ser que aquest recurs no hagi

de ser accessible per a segons quines regions geogragravefiques Per exemple pot existir una tenda

virtual que no tingui distribucioacute per a Agravesia o que per a segons quins paiumlsos ofereixi uns productes

diferents llavors apareix la necessitat de saber des de quin punt geogragravefic estagrave accedint aquest

usuari per tal drsquooptimitzar els recursos drsquoaquest determinat servei Altra possibilitat pot ser per

motius de seguretat

Es en aquest punt apareix la necessitat de la Geolocalitzacioacute IP aquesta es tracta

bagravesicament de relacionar una adreccedila IP amb un punt concret de la geografia mundial Per cobrir

aquesta necessitat srsquohan desenvolupat diversos serveis dedicats a facilitar amb major o menor

exactitud les dades de geolocalitzacioacute de les adreces IP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

2

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i aportacioacute del TFG

Una de les parts que sempre mrsquoha interessat dels entorns informagravetics ha sigut com

srsquointerconnecten els equips i comparteixen la informacioacute entre ells Internet ha aportat als

equips informagravetics la possibilitat de compartir informacioacute eliminant moltes fronteres

geogragravefiques eacutes per aquest motiu que vaig triar aquest camp per desenvolupar el Treball de Fi

de Grau

Durant lrsquoestudi de les diferents assignatures de Xarxes de Computadors he pogut

aprendre moltes de les caracteriacutestiques drsquoaquestes comunicacions entre equips des del punt

concret drsquoun equip fins al funcionament drsquouna xarxa complexa com pot ser una Intranet o

Internet Tambeacute he apregraves el funcionament dels diferents protocols de comunicacioacute i els

elements importants que formen una xarxa com soacuten els encaminadors els commutadors o els

servidors de domini (DNS)

Eacutes a partir drsquoaquest estudi que apareix la possibilitat drsquoampliar els coneixements de com

srsquoorganitza concretament Internet i com es poden aprofitar els diferents serveis que existeixen

a la xarxa per a desenvolupar una aplicacioacute que permeti geolocalitzar els equips dintre del moacuten

fiacutesic eacutes a dir en un mapa geogragravefic

Aquest Treball de Fi de Grau parteix dels coneixements previs sobre xarxes i preteacuten

ampliar aquests coneixements aportant una visioacute de les possibilitats que ofereix la xarxa per a

utilitzar recursos i combinar-los per a elaborar un producte que a la vegada ofereixi un servei

concret en aquest cas la geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Lrsquoaportacioacute que

preteacuten eacutes la clarificacioacute de conceptes de geolocalitzacioacute i protocols de comunicacioacute que

permeten la identificacioacute dels nodes existents en una comunicacioacute en una xarxa

12 Objectius del TFG

Lrsquoobjectiu drsquoaquest TFG eacutes crear un producte que donat un nom de host drsquoInternet

proporcioni la informacioacute corresponent a aquest a meacutes de mostrar per quins nodes han de

passar els paquets per tal drsquoaccedir-hi La informacioacute relativa als nodes seragrave la seva

geolocalitzacioacute dins drsquoun mapa mundi i aquests aniran enllaccedilats amb una liacutenia per a mostrar el

camiacute de la informacioacute

Per tal de portar a terme aquestes accions lrsquoaplicacioacute ha de realitzar diferents processos

enllaccedilats entre si Primer srsquoha drsquoimplementar un megravetode que retorni la informacioacute dels nodes a

mode de traceroute tot creant els paquets que utilitza el protocol ICMP per a realitzar aquest

A continuacioacute srsquohauran de situar aquests nodes en unes coordenades geogragravefiques per tal de

finalment poder situar-los dintre drsquoun mapa mundi A banda drsquoaquest proceacutes de geolocalitzacioacute

es vol fer una consulta al servei Whois per tal que retorni tota la informacioacute relativa al nom de

host indicat si lrsquousuari ho demana

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

3

Els objectius generals soacuten els seguumlents

Crear un producte capaccedil drsquoidentificar els nodes que hi ha entre lrsquoequip des drsquoon srsquoestagrave

executant i un nom de host o adreccedila IP drsquoInternet

Implementar dintre del producte la possibilitat de consultar les dades referents al host

de destiacute

Ubicar dintre drsquoun mapa mundi els nodes identificats amb anterioritat com a nodes

entre lrsquoequip origen i el host de destiacute

Realitzar la memograveria que reculli la documentacioacute elaborada durant tot el proceacutes del

projecte aixiacute com lrsquoexplicacioacute del funcionament drsquoaquest

Aprofundir a nivell teograveric i pragravectic en els conceptes relacionats amb el projecte com

poden ser lrsquoestructura dels datagrames ICMP i les seves utilitats les diferents

possibilitats que existeixen per tal de geolocalitzar un host determinat o la

implementacioacute drsquoaquests en el llenguatge de programacioacute triat

13 Enfocament i megravetode seguit

A lrsquohora de planificar la construccioacute drsquoaquesta aplicacioacute que ha de mostrar la ruta que hi

ha entre dos equips un drsquoorigen i un altre de destiacute srsquoha optat per dividir el conjunt de

funcionalitats que srsquohan de implementar i treballar cadascuna drsquoelles per separat perograve alhora

drsquouna manera incremental Eacutes a dir srsquoha de resoldre cada funcionalitat per separat i una vegada

es teacute implementada aquesta ens proporcionava la base de la seguumlent

Les funcionalitats necessagraveries per completar el projecte soacuten les seguumlents

Realitzacioacute de la traccedila entre el node origen i el destiacute

Obtencioacute de tota la informacioacute necessagraveria dels nodes com eacutes la latitud i la longitud

Mostrar aquests nodes en una taula

Visualitzacioacute drsquoaquests nodes juntament amb la ruta que realitzen els paquets en un

mapa

Aixiacute doncs primerament caldragrave construir el megravetode que permeti realitzar la traccedila entre

nodes per tal drsquoobtenir la informacioacute bagravesica drsquoaquests

Una vegada es tingui els nodes identificats amb la informacioacute obtinguda en el pas

anterior caldragrave consultar en algun servei la informacioacute concreta de geolocalitzacioacute de cada node

i afegir-la a la informacioacute que ja es teacute

A continuacioacute cal mostrar la informacioacute obtinguda de cada node en una taula que

permeti a lrsquousuari poder revisar aquesta informacioacute drsquouna manera fagravecil i intuiumltiva Aixograve es faragrave

mitjanccedilant una taula que recolliragrave totes les dades obtingudes

Finalment utilitzant les dades obtingudes en el pas anterior caldragrave utilitzar un servei de

mapes per a mostrar-la correctament en un mapa de tal manera que tambeacute quedi representada

la ruta entre nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 9: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

2

11 Justificacioacute del TFG i context en el qual es desenvolupa punt de partida i aportacioacute del TFG

Una de les parts que sempre mrsquoha interessat dels entorns informagravetics ha sigut com

srsquointerconnecten els equips i comparteixen la informacioacute entre ells Internet ha aportat als

equips informagravetics la possibilitat de compartir informacioacute eliminant moltes fronteres

geogragravefiques eacutes per aquest motiu que vaig triar aquest camp per desenvolupar el Treball de Fi

de Grau

Durant lrsquoestudi de les diferents assignatures de Xarxes de Computadors he pogut

aprendre moltes de les caracteriacutestiques drsquoaquestes comunicacions entre equips des del punt

concret drsquoun equip fins al funcionament drsquouna xarxa complexa com pot ser una Intranet o

Internet Tambeacute he apregraves el funcionament dels diferents protocols de comunicacioacute i els

elements importants que formen una xarxa com soacuten els encaminadors els commutadors o els

servidors de domini (DNS)

Eacutes a partir drsquoaquest estudi que apareix la possibilitat drsquoampliar els coneixements de com

srsquoorganitza concretament Internet i com es poden aprofitar els diferents serveis que existeixen

a la xarxa per a desenvolupar una aplicacioacute que permeti geolocalitzar els equips dintre del moacuten

fiacutesic eacutes a dir en un mapa geogragravefic

Aquest Treball de Fi de Grau parteix dels coneixements previs sobre xarxes i preteacuten

ampliar aquests coneixements aportant una visioacute de les possibilitats que ofereix la xarxa per a

utilitzar recursos i combinar-los per a elaborar un producte que a la vegada ofereixi un servei

concret en aquest cas la geolocalitzacioacute drsquoequips a traveacutes de la seva adreccedila IP Lrsquoaportacioacute que

preteacuten eacutes la clarificacioacute de conceptes de geolocalitzacioacute i protocols de comunicacioacute que

permeten la identificacioacute dels nodes existents en una comunicacioacute en una xarxa

12 Objectius del TFG

Lrsquoobjectiu drsquoaquest TFG eacutes crear un producte que donat un nom de host drsquoInternet

proporcioni la informacioacute corresponent a aquest a meacutes de mostrar per quins nodes han de

passar els paquets per tal drsquoaccedir-hi La informacioacute relativa als nodes seragrave la seva

geolocalitzacioacute dins drsquoun mapa mundi i aquests aniran enllaccedilats amb una liacutenia per a mostrar el

camiacute de la informacioacute

Per tal de portar a terme aquestes accions lrsquoaplicacioacute ha de realitzar diferents processos

enllaccedilats entre si Primer srsquoha drsquoimplementar un megravetode que retorni la informacioacute dels nodes a

mode de traceroute tot creant els paquets que utilitza el protocol ICMP per a realitzar aquest

A continuacioacute srsquohauran de situar aquests nodes en unes coordenades geogragravefiques per tal de

finalment poder situar-los dintre drsquoun mapa mundi A banda drsquoaquest proceacutes de geolocalitzacioacute

es vol fer una consulta al servei Whois per tal que retorni tota la informacioacute relativa al nom de

host indicat si lrsquousuari ho demana

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

3

Els objectius generals soacuten els seguumlents

Crear un producte capaccedil drsquoidentificar els nodes que hi ha entre lrsquoequip des drsquoon srsquoestagrave

executant i un nom de host o adreccedila IP drsquoInternet

Implementar dintre del producte la possibilitat de consultar les dades referents al host

de destiacute

Ubicar dintre drsquoun mapa mundi els nodes identificats amb anterioritat com a nodes

entre lrsquoequip origen i el host de destiacute

Realitzar la memograveria que reculli la documentacioacute elaborada durant tot el proceacutes del

projecte aixiacute com lrsquoexplicacioacute del funcionament drsquoaquest

Aprofundir a nivell teograveric i pragravectic en els conceptes relacionats amb el projecte com

poden ser lrsquoestructura dels datagrames ICMP i les seves utilitats les diferents

possibilitats que existeixen per tal de geolocalitzar un host determinat o la

implementacioacute drsquoaquests en el llenguatge de programacioacute triat

13 Enfocament i megravetode seguit

A lrsquohora de planificar la construccioacute drsquoaquesta aplicacioacute que ha de mostrar la ruta que hi

ha entre dos equips un drsquoorigen i un altre de destiacute srsquoha optat per dividir el conjunt de

funcionalitats que srsquohan de implementar i treballar cadascuna drsquoelles per separat perograve alhora

drsquouna manera incremental Eacutes a dir srsquoha de resoldre cada funcionalitat per separat i una vegada

es teacute implementada aquesta ens proporcionava la base de la seguumlent

Les funcionalitats necessagraveries per completar el projecte soacuten les seguumlents

Realitzacioacute de la traccedila entre el node origen i el destiacute

Obtencioacute de tota la informacioacute necessagraveria dels nodes com eacutes la latitud i la longitud

Mostrar aquests nodes en una taula

Visualitzacioacute drsquoaquests nodes juntament amb la ruta que realitzen els paquets en un

mapa

Aixiacute doncs primerament caldragrave construir el megravetode que permeti realitzar la traccedila entre

nodes per tal drsquoobtenir la informacioacute bagravesica drsquoaquests

Una vegada es tingui els nodes identificats amb la informacioacute obtinguda en el pas

anterior caldragrave consultar en algun servei la informacioacute concreta de geolocalitzacioacute de cada node

i afegir-la a la informacioacute que ja es teacute

A continuacioacute cal mostrar la informacioacute obtinguda de cada node en una taula que

permeti a lrsquousuari poder revisar aquesta informacioacute drsquouna manera fagravecil i intuiumltiva Aixograve es faragrave

mitjanccedilant una taula que recolliragrave totes les dades obtingudes

Finalment utilitzant les dades obtingudes en el pas anterior caldragrave utilitzar un servei de

mapes per a mostrar-la correctament en un mapa de tal manera que tambeacute quedi representada

la ruta entre nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 10: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

3

Els objectius generals soacuten els seguumlents

Crear un producte capaccedil drsquoidentificar els nodes que hi ha entre lrsquoequip des drsquoon srsquoestagrave

executant i un nom de host o adreccedila IP drsquoInternet

Implementar dintre del producte la possibilitat de consultar les dades referents al host

de destiacute

Ubicar dintre drsquoun mapa mundi els nodes identificats amb anterioritat com a nodes

entre lrsquoequip origen i el host de destiacute

Realitzar la memograveria que reculli la documentacioacute elaborada durant tot el proceacutes del

projecte aixiacute com lrsquoexplicacioacute del funcionament drsquoaquest

Aprofundir a nivell teograveric i pragravectic en els conceptes relacionats amb el projecte com

poden ser lrsquoestructura dels datagrames ICMP i les seves utilitats les diferents

possibilitats que existeixen per tal de geolocalitzar un host determinat o la

implementacioacute drsquoaquests en el llenguatge de programacioacute triat

13 Enfocament i megravetode seguit

A lrsquohora de planificar la construccioacute drsquoaquesta aplicacioacute que ha de mostrar la ruta que hi

ha entre dos equips un drsquoorigen i un altre de destiacute srsquoha optat per dividir el conjunt de

funcionalitats que srsquohan de implementar i treballar cadascuna drsquoelles per separat perograve alhora

drsquouna manera incremental Eacutes a dir srsquoha de resoldre cada funcionalitat per separat i una vegada

es teacute implementada aquesta ens proporcionava la base de la seguumlent

Les funcionalitats necessagraveries per completar el projecte soacuten les seguumlents

Realitzacioacute de la traccedila entre el node origen i el destiacute

Obtencioacute de tota la informacioacute necessagraveria dels nodes com eacutes la latitud i la longitud

Mostrar aquests nodes en una taula

Visualitzacioacute drsquoaquests nodes juntament amb la ruta que realitzen els paquets en un

mapa

Aixiacute doncs primerament caldragrave construir el megravetode que permeti realitzar la traccedila entre

nodes per tal drsquoobtenir la informacioacute bagravesica drsquoaquests

Una vegada es tingui els nodes identificats amb la informacioacute obtinguda en el pas

anterior caldragrave consultar en algun servei la informacioacute concreta de geolocalitzacioacute de cada node

i afegir-la a la informacioacute que ja es teacute

A continuacioacute cal mostrar la informacioacute obtinguda de cada node en una taula que

permeti a lrsquousuari poder revisar aquesta informacioacute drsquouna manera fagravecil i intuiumltiva Aixograve es faragrave

mitjanccedilant una taula que recolliragrave totes les dades obtingudes

Finalment utilitzant les dades obtingudes en el pas anterior caldragrave utilitzar un servei de

mapes per a mostrar-la correctament en un mapa de tal manera que tambeacute quedi representada

la ruta entre nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 11: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

4

14 Planificacioacute del projecte 141 Dates drsquoentrega

Data Lliurament

15 drsquoabril PAC 1

27 de maig PAC 2

10 de juny Memograveria del Producte TFG i

Producte finalitzat

17 de juny Presentacioacute del TFG

18-24 de juny Preguntes del tribunal

Taula 1 Dates dentrega

142 Fites i temporitzacioacute

Tasca 1

Temporitzacioacute 1 setmana (5 de marccedil al 11 de marccedil)

Descripcioacute Recollida i classificacioacute de tota la informacioacute per a generar el marc teograveric en

el que es basa el TFG

Tasques

Recollida drsquoinformacioacute relativa als protocols necessaris per a realitzar les consultes amb

els diferents nodes (ICMP Echo Reply i ICMP Echo Request)

Elaboracioacute del marc teograveric en el qual es fonamentaragrave el projecte

Recollida drsquoinformacioacute sobre les consultes als serveis Whois

Anagravelisi de les diferents possibilitats a lrsquohora drsquoobtenir la informacioacute relativa a la

geolocalitzacioacute dels nodes

Fites

Elaborar un document que reculli tota aquesta informacioacute estructurada descripcioacute del

protocol ICMP diferents serveis que existeixen per a obtenir la geolocalitzacioacute drsquoun

node informacioacute de com srsquoestructura el servei Whois

Afegir la informacioacute elaborada a la memograveria

Tasca 2

Temporitzacioacute 1 setmana (12 de marccedil al 18 de marccedil)

Descripcioacute Identificar les necessitats concretes a lrsquohora drsquoimplementar el TFG i triar les

eines necessagraveries per a satisfer aquestes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 12: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

5

Tasques

Avaluar diferents llenguatges de programacioacute valorant les seves possibilitats a lrsquohora

drsquoimplementar datagrames ICMP Echo Replay i Echo Request i les seves funcionalitats

per a treballar amb objectes i finestres

Avaluar quin sistema drsquoinformacioacute sobre la geolocalitzacioacute eacutes la meacutes adient per a

implementar el TFG

Avaluar els diferents serveis existents per a poder visualitzar dintre drsquoun mapa mundi els diferents nodes la ruta que segueixen els paquets entre aquests

Fites

Definir el marc pragravectic que ens serviragrave per a desenvolupar el projecte de forma eficient

Establir el llenguatge de programacioacute que srsquoutilitzaragrave i el tipus drsquoaplicacioacute que es vol implementar

Afegir la informacioacute elaborada a la memograveria

Tasca 3

Temporitzacioacute 1 setmana (19 de marccedil al 25 de marccedil)

Descripcioacute Disseny dels mograveduls i processos que ha de tenir el producte per a realitzar

les tasques desitjades

Tasques

Disseny de lrsquoestructura concreta dels mograveduls necessaris per a satisfer les necessitats del producte

Disseny de les finestres i funcionalitats que formaran part del producte

Fites

Disseny de lrsquoaplicacioacute amb lrsquoanagravelisi de les decisions preses

Afegir la informacioacute elaborada a la memograveria

Tasca 4

Temporitzacioacute 7 setmanes (26 de marccedil al 13 de maig)

Descripcioacute Implementar amb el llenguatge de programacioacute triat lrsquoaplicacioacute que

acompleixi els objectius marcats al disseny

Tasques

Implementar estructura bagravesica de les finestres necessagraveries per a la funcionalitat de

lrsquoaplicacioacute (26 de marccedil al 31 de marccedil)

Implementar translacioacute del nom del host a adreccedila IP (1 drsquoabril al 3 drsquoabril)

Implementar consulta ICMP per obtenir ruta i nodes (4 drsquoabril al 15 drsquoabril)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 13: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

6

Implementar consulta servei Whois (16 drsquoabril al 22 drsquoabril)

Implementar consulta de la latitud i la longitud al servei de geolocalitzacioacute triat (23

drsquoabril al 29 drsquoabril)

Implementar representacioacute de les dades obtingudes en el API de mapes triat (30 drsquoabril

al 13 de maig)

Fites

Aplicacioacute finalitzada per a poder comenccedilar proves drsquousuari

Afegir la informacioacute elaborada a la memograveria

Tasca 5

Temporitzacioacute 1 setmana (14 de maig al 20 de maig)

Descripcioacute Realitzar proves drsquousuari per tal de detectar possibles errades documentar

aplicacioacute

Tasques

Proves de les diferents funcionalitats de lrsquoaplicacioacute

Anagravelisi del producte final

Fites

Aplicacioacute finalitzada

Afegir la informacioacute elaborada a la memograveria

Tasca 6

Temporitzacioacute 3 setmanes (21 de maig al 10 de juny)

Descripcioacute Finalitzacioacute de la memograveria i documentacioacute necessagraveria per a fer lrsquoentrega de

TFG

Tasques

Finalitzar la memograveria afegint la descripcioacute final de lrsquoaplicacioacute i el manual de

funcionament

Realitzar presentacioacute del producte

Fites

Memograveria del TFG

Presentacioacute del TFG

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 14: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

7

143 Diagrama de Gantt

Ilmiddotlustracioacute 1 Diagrama de Gantt

15 Productes obtinguts

Al finalitzar el projecte srsquohauran elaborat dos productes que formaran part de lrsquoentrega

del TFG aquests productes seran lrsquoaplicacioacute GeolocalitzacioIP i la memograveria on es recolliragrave tot el

proceacutes de treball per arribar a la finalitzacioacute drsquoaquesta

Lrsquoaplicacioacute GeolocalitzacioIP eacutes un programari que a partir drsquouna adreccedila IP o el nom drsquoun

domini ens proporcioni la informacioacute relativa a la ruta que segueixen els paquets entre lrsquoequip

origen i lrsquoequip destiacute Mitjanccedilant la informacioacute recollida es mostraragrave a traveacutes drsquoun mapa aquesta

ruta entre nodes Igualment tota la informacioacute es recolliragrave en una taula que es podragrave visualitzar

en tot moment

La memograveria final recolliragrave la base teograverica en la qual es fonamenta aixiacute com totes les

fases del disseny i implementacioacute del producte

16 Breu descripcioacute dels altres capiacutetols de la memograveria

A continuacioacute es troben els capiacutetols de desenvolupament del projecte concret La

distribucioacute drsquoaquests srsquoha fet amb una introduccioacute del marc teograveric per despreacutes entrar a

desenvolupar una part meacutes pragravectica fins arribar al desenvolupament del producte final Els

capiacutetols soacuten els seguumlents

Capiacutetol 2 Marc Teograveric en aquest es fa una explicacioacute dels elements teograverics que formen

part de la comunicacioacute dintre drsquouna xarxa drsquoequips informagravetics i quins soacuten els protocols

bagravesics que srsquoutilitzaran per aconseguir els objectius del producte

Capiacutetol 3 Anagravelisi de Recursos es fa una avaluacioacute dels diferents recursos disponibles a

la xarxa per tal drsquoobtenir les diferents funcionalitats del producte aixiacute com drsquoalguns

dels diferents llenguatges de programacioacute que es poden utilitzar per a implementar

aquest producte Finalment es fa la tria i justificacioacute dels recursos triats

Capiacutetol 4 Disseny de lrsquoAplicacioacute es realitza el disseny de les funcionalitats i

comportament que tindragrave el producte Aquest es realitza tenint en compte els diferents

digrames que permeten concretar quin comportament ha de tenir lrsquoaplicacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 15: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

8

Capiacutetol 5 Implementacioacute de lrsquoAplicacioacute es detalla com srsquoha traduiumlt el que srsquoha

dissenyat al llenguatge de programacioacute concret i com srsquoha creat el codi per a comunicar

amb els diferents serveis triats

Capiacutetol 6 Conclusions es fa un anagravelisi de com srsquohan assolit els objectius inicials i si hi

ha hagut molta desviacioacute del que srsquoha proposat inicialment amb el producte final

Tambeacute es recull les conclusions personals sobre la geolocalitzacioacute dels equips a traveacutes

de la IP dels equips

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 16: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

9

2 Marc teograveric

21 Encapsulament i la pila TCPIP

Les comunicacions a traveacutes de la xarxa es realitzen mitjanccedilant paquets formats per

sequumlegravencies drsquouns i zeros eacutes a dir de codi binari Aquests paquets soacuten la unitat bagravesica drsquoaquestes

comunicacions i estan formats per un encapccedilalament on es troba la direccioacute drsquoenviament i la de

recepcioacute i una part de cagraverrega on srsquoinclouen les dades que es volen transmetre

La pila de protocol TCPIP eacutes un conjunt de protocols que estableix com srsquoha

drsquoorganitzar la informacioacute dintre drsquoaquests paquets es tracta drsquouna organitzacioacute per capes que

dintre del paquet srsquoorganitzen introduint la capa superior dintre de la capa inferior seguumlent

aquest sistema srsquoanomena encapsulament

Les capes que formen part de la pila TCPIP soacuten les seguumlents

Capa dlsquoaplicacioacute aquesta correspon a la part superior de la pila i defineix la capa de

lrsquoaplicacioacute aquesta dona format a un paquet drsquoinformacioacute que es vol transmetre a un

altre host Es on es xifren i es comprimeixen les dades amb el format correcte per a la

seva transmissioacute

Capa de transport aquesta rep el paquet bagravesic de la capa drsquoaplicacioacute i srsquoencarrega de

lrsquoencapsulacioacute per a transmetre el paquet amb el protocol triat en unitats de

comunicacioacute Aquestes unitats de comunicacioacute srsquoanomenen segments o datagrames Els

protocols utilitzats poden ser UDP o TCP segons la necessitat de la comunicacioacute i

identifiquen els ports logravegics de destiacute i origen dels paquets per tal que es comuniquin

amb lrsquoaplicacioacute correcta

Capa de xarxa o drsquointernet encapsula el paquet resultant de la capa de transport en

unitats anomenades paquets eacutes lrsquoencarregada drsquoafegir la informacioacute de xarxa

necessagraveria per tal que el paquet arribi del host origen al host destiacute En aquest nivell de

capa treballen els encaminadors de la xarxa que compleixen la funcioacute de triar el millor

camiacute per a cada paquet per arribar al seu destiacute Srsquoafegeix una capccedilalera IP amb les dades

de lrsquoorigen i el destiacute es crea el datagrama IP

Capa drsquoacceacutes al medi en aquest nivell srsquoencapsula el datagrama IP afegint lrsquoadreccedila fiacutesica

dels equips de destiacute i origen Aquesta adreccedila fiacutesica eacutes lrsquoadreccedila MAC (Media Access

Control) que es una segraverie de nuacutemeros hexadecimals uacutenica per a cada dispositiu de xarxa

que lrsquoidentifica dels altres equips El paquet resultant eacutes una estructura on es troben

totes les capes estructurades i preparat per a enviar a traveacutes del medi fiacutesic com pot ser

un cable de comunicacions

Capa fiacutesica on el maquinari acaba drsquoencapsular el paquet en el format adient per a

realitzar la transmissioacute a traveacutes del medi fiacutesic utilitzat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 17: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

10

Ilmiddotlustracioacute 2 Pila TCPIP

Aquests nivells de la pila TCPIP es corresponent amb un altre estagravendard tambeacute molt

utilitzat per definir lrsquoencapsulament de les dades i que divideix aquestes capes en 7 nivells

anomenat estagravendard OSI Les capes de Presentacioacute Sessioacute i Transport es corresponen a la capa

de Transport del model TCPIP A continuacioacute es mostra lrsquoestagravendard OSI

Ilmiddotlustracioacute 3 Estagravendard OSI

22 Adreccedilament IPv4

Com srsquoha vist en lrsquoapartat anterior els equips es troben connectats a la xarxa mitjanccedilant

interfiacutecies enllaccedilades entre elles amb equips de xarxa que soacuten els encaminadors i els

commutadors per tal de identificar les interfiacutecies de cada equip srsquoutilitza el protocol IP el qual

permet assignar a cada interfiacutecie un nuacutemero format per quatre grups de 8 bits (4 bytes) Les

adreces IP es divideixen en dues parts la que identifica la xarxa i la que identifica els equips i

aquestes varien segons la mascara de xarxa com es veuragrave una mica meacutes endavant A nivell de

maquinari aquestes adreces estan relacionades amb lrsquoadreccedila fiacutesica de la interfiacutecie que eacutes uacutenica

per a cada interfiacutecie Normalment aquestes adreces IP es mostren en nombres decimals

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 18: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

11

separats per un punt i hi ha aproximadament 4 bilions drsquoadreces possibles Com es pot veure

aquest numero eacutes insuficient per tal drsquoadreccedilar tots els equips que es troben connectats a

internet encara que en el moment de la creacioacute drsquoInternet es pensava que nrsquohi hauria prou

Les adreces IP srsquoagrupen en xarxes les quals es defineixen a partir de la mascara de

xarxa aquesta determina quants equips hi ha en una xarxa i tambeacute estagrave formada per quatre

bytes Encara que el funcionament drsquoaquests eacutes diferent a les adreces IP segons el nuacutemero de

bits identificats amb 0 es pot saber quins bits de lrsquoadreccedila IP poden variar i per tant quantes

adreces IP poden formar la subxarxa corresponent Per exemple per a una xarxa identificada

amb lrsquoadreccedila 19216810 si la mascara de subxarxa eacutes 2552552550

(11111111111111111111111100000000) significaragrave que nomeacutes variaran els 8 uacuteltims bits de

lrsquoadreccedilament i per tant els equips nomeacutes podran tenir el rang compreacutes entre 19216811 al

1921681255 i els equips que estiguin fora drsquoaquest seran inaccessibles sense un

encaminament Igualment es pot apreciar que la part de lrsquoadreccedila IP que identificaragrave la xarxa

seran els 24 primers bits i els hosts srsquoidentificaran amb els 8 uacuteltims bits Altra manera de

referenciar una xarxa es fa indicant quants bits de la mascara de xarxa es troben amb el valor 1

aixiacute doncs la xarxa anterior es pot indicar com 1921681024 Aquest mecanisme de xarxes eacutes

molt important a lrsquohora drsquoaprofitar les assignacions de rang drsquoadreces IP ja quegrave permet fer

subxarxes a partir drsquouna xarxa concreta seguint amb lrsquoexemple anterior dintre de la xarxa

1921681024 es podria dividir en dos subxarxes indicades com 1921681025 i

19216816425

Altre concepte important en lrsquoadreccedilament IP eacutes la diferegravencia entre adreccedila IP puacuteblica i

privada com ja srsquoha dit al principi els equips estan connectats entre ells amb encaminadors i

commutadors els encaminadors soacuten els encarregats de redirigir els paquets destinats a equips

ubicats fora de la xarxa Lrsquoadreccedila IP que els equips tenen dintre de la xarxa privada srsquoanomena

adreccedila privada i nomeacutes eacutes visible per als equips que es troben en la mateixa xarxa quan aquests

equips envien paquets a equips situats fora de la xarxa privada lrsquoencaminador eacutes lrsquoencarregat

de substituir lrsquoadreccedila privada per lrsquoadreccedila que ell teacute dintre de la xarxa puacuteblica de tal manera que

les respostes a aquest paquet aniran primer dirigides a lrsquoadreccedila de lrsquoencaminador per

posteriorment ser substituiumlda per lrsquoadreccedila de lrsquoequip remitent i arribar la resposta al seu

destinatari A partir drsquoaquiacute es pot veure que els equips drsquouna xarxa privada sigui tant gran com

sigui nomeacutes tindran una adreccedila puacuteblica (o el nuacutemero drsquoadreces IP puacutebliques que tinguin

assignades pel ISP corresponent) Aquest mecanisme drsquoadreccedilament permet lrsquoassignacioacute drsquoun

gran nuacutemero drsquoadreces IP que drsquoaltra manera no seria possible al estar aquestes repetides

Finalment les adreces IP es divideixen en grups anomenats Classes on cada grup

defineix un rang drsquoadreces concret i per convencioacute estan destinats a uns objectius concrets a

continuacioacute es mostren les diferents Classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 19: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

12

Classe Rang Objectiu

A 1000 a 126255255255 Reservada per a xarxes molt grans Les adreces del rang 127000 srsquoutilitzen per identificar lrsquoequip local

B 128000 a 191255255255 Srsquoutilitzen per a xarxes de mida mitjana

C 192000 a 223255255255 Reservada per a xarxes petites o mitjanes

D 224000 a 239255255255 Utilitzat per a comunicacions multicast

E 240000 a 255255255255 Reservada amb propogravesits experimentals

Taula 2 Classes IP

Dintre de les diferents classes es diferencien adreces per a xarxes privades o per xarxes

puacutebliques els rangs drsquoadreces reservats per adreces privades soacuten els seguumlents

10000 a 10255255255

1721600 a 17216255255

19216800 a 192168255255

16925400 a 169254255255

Taula 3 Rangs dadreces privades

23 Protocol ICMP (Protocol de Missatges de Control drsquoInternet)

El protocol ICMP estagrave situat dintre del nivell de paquets o tambeacute conegut com a nivell

de xarxa o IP aquest protocol srsquoutilitza per tal de detectar possibles errors dintre dels

datagrames IP Les especificacions drsquoaquest protocol estan recollides dintre de la norma RFC

792 on srsquoindica que el protocol ICMP consta de diferents missatges que possibiliten diagnosticar

els problemes en el processament dels datagrames A continuacioacute es mostra lrsquoestructura drsquoun

datagrama IP

Ilmiddotlustracioacute 4 Estructura datagrama IP

Dintre de la capccedilalera trobem els camps seguumlents

Versioacute el qual indica si es tracta de protocol IPv4 o IPv6

IHL longitud de la capccedilalera sense comptar les dades

Tipus de servei es refereix a la qualitat del servei indicada per al datagrama el possibles

valors es recullen en lrsquoespecificacioacute RFC 1349

Longitud total eacutes la longitud del datagrama comptant les dades srsquoexpressa en bytes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 20: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

13

Identificacioacute eacutes un nuacutemero uacutenic que dona suport al receptor per tal de tornar a unir els

paquets si hi ha fragmentacioacute

Flags eacutes tracta de valors de control de la fragmentacioacute

Posicioacute indica la posicioacute del paquet si hi ha fragmentacioacute per ajudar a unir els paquets

Temps de vida (TTL o time to live) aquest camp indica el nombre magravexim de salts que

pot fer el paquet abans drsquoarribar al destiacute Per cada node que passa el paquet es

descompta una unitat i si el valor de TTL arriba a 0 abans de trobar el host indicat el

node que fica el valor a 0 retorna un missatge ICMP indicat que srsquoha excedit el TTL

Protocol indica el protocol de nivell superior al qual el protocol IP ha drsquoentregar les

dades En el cas del protocol ICMP el valor ha de ser 1

Suma de control de capccedilalera aquest valor es calcula fent una suma de bytes de

capccedilalera i permet comprovar si el paquet srsquoha deteriorat durant la transmissioacute

Direccioacute drsquoorigen indica la direccioacute IP del host emissor del paquet

Direccioacute de destiacute indica la direccioacute del host destinatari del paquet

Opcions camp de longitud variable que srsquoutilitza per a la depuracioacute o proves de xarxa

A continuacioacute de la capccedilalera IP trobem el datagrama del protocol ICMP

Ilmiddotlustracioacute 5 Capccedilalera datagrama IP del protocol ICMP

Mitjanccedilant la combinacioacute dels camps type i code es poden detectar diferents tipus

drsquoerros i quin eacutes el motiu pel qual srsquohan produiumlt El primer camp type indica quin tipus de

missatge ICMP srsquoestagrave produint en el nostre projecte ens centrarem en el type 3 el qual es

refereix a que no es pot arribar al equip indicat (Unreachable host)

El camp code ens indica quin eacutes el motiu pel qual no es pot arribar al destiacute a continuacioacute

es mostren els possibles combinacions Type i Code que recull aquest protocol

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 21: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

14

El camp checksum srsquoutilitza per a controlar que les dades del datagrama ICMP estiguin

correctes si al rebre el paquet el receptor el cagravelcul del valor de checksum eacutes diferent aquest

paquet es rebutja

24 Ping

Es tracta drsquoun programa que utilitza les caracteriacutestiques del protocol ICMP per tal de

verificar la connectivitat amb un host determinat Utilitza dos tipus de missatge echo reply i

echo request Concretament es crea un datagrama ICMP amb type 8 i code 0 (echo request) amb

la capccedilalera IP que indica la adreccedila IP origen la adreccedila IP de destiacute el protocol amb el valor 1

(ICMP) i el tipus de servei 0 (rutinari) Quan el host de destiacute rep el paquet aquest retorna un

datagrama ICMP a lrsquoorigen amb la combinacioacute type 0 i code 0 el qual indica que el paquet srsquoha

rebut correctament i que el host eacutes assolible

Lrsquoeina Ping srsquoutilitza per tal de comprovar la connectivitat amb altres equips per a

facilitar les comprovacions incorpora alguns paragravemetres que permeten modificar les

caracteriacutestiques del paquet a Windows aquestes soacuten algunes drsquoelles

- t realitza ping fins que es deteacute manualment

- a resol la direccioacute com a nom de host

- l especifica la mida en bytes del paquet ICMP que srsquoenvia pot ser com a magravexim de

65527 bytes

- f indica que els paquets ICMP no es poden fragmentar

- i permet modificar el TTL del paquet ICMP enviat normalment srsquoestableix entre 128 i

255 salts

ICMP Type Code Description

0 0 echo reply

3 0 destination network unreachable

3 1 destination host unreachable

3 2 destination protocol unreachable

3 3 destination port unreachable

3 6 destination network unknown

3 7 destination host unknown

4 0 sourcequench (congestion control)

8 0 echo request

9 0 router advertisement

10 0 router discovery

11 0 TTL expired

12 0 IP header bad

Taula 4 Respostes ICMP

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 22: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

15

25 Traceroute

Altra aplicacioacute que aprofita les caracteriacutestiques del protocol ICMP combinades amb el

paragravemetre TTL (time to live) de la capccedilalera IP per tal de determinar quins salts fan els paquets

abans drsquoarribar al host indicat El seu objectiu eacutes identificar els equips per on passen els paquets

per arribar drsquoun equip a un altre

El seu funcionament eacutes el seguumlent el host drsquoorigen crea un paquet amb un TTL=1 i

lrsquoenvia quant aquest arriba al primer node aquest node resta una unitat al valor TTL com

aquest valor eacutes igual a 0 i encara no ha arribat al host destiacute retorna un paquet ICMP amb type

11 i code 0 el qual indica que el valor TTL ha expirat i lrsquoadreccedila IP de lrsquoequip a on ha arribat el

paquet Al rebre aquest paquet el host origen incrementa el valor TTL una unitat i torna a enviar

el paquet si lrsquoequip a on arriba ara amb els dos salts no eacutes el host destiacute aquest tornaragrave a rebre

la mateixa resposta amb les dades del seguumlent node Quan finalment despreacutes drsquoincrementar el

valor TTL fins que sigui el necessari el paquet arriba al host destiacute aquest retorna un paquet

echo replay Aixiacute lrsquoequip que ha executat el traceroute sabragrave amb el valor final de TTL quants

salts cal per arribar a lrsquoequip destiacute i a meacutes hauragrave pogut recopilar informacioacute dels nodes

intermedis entre ells Un possible resultat mentre es realitza aquest proceacutes eacutes que hi hagi equips

que no responguin i excedeixin el temps determinat per a rebre la resposta aixograve pot ser degut

a que aquests equips no tenen activat el protocol ICMP per diferents raons

26 Domain Name System (DNS)

Es tracta drsquoun sistema jeragraverquic descentralitzat que relaciona les adreces IP dels equips

connectats a la xarxa ja sigui puacuteblica o privada amb noms intelmiddotligibles per a les persones

Aquest servei va sorgir per la dificultat de recordar series de nuacutemeros com soacuten les adreces IP

que tenen les persones Per tal de facilitar aquesta tasca aquest servei permet que per accedir

a un domini a la xarxa lrsquousuari nomeacutes hagi de saber un nom que resulta meacutes fagravecil de recordar

com per exemple wwwamazones

El sistema DNS es compon per una segraverie de servidors distribuiumlts per la xarxa que quan

reben una consulta DNS de resolucioacute de noms amb el nom drsquoun domini determinat aquest

servidor consulta si teacute la resposta a aquesta consulta de resolucioacute si la teacute retorna el valor de

lrsquoadreccedila IP concreta si no la teacute trasllada la consulta a un altre servidor DNS Normalment el

primer servei DNS lrsquoofereix el mateix equip el qual comprova a la seva memograveria cau si disposa

de la informacioacute demanada si no eacutes aixiacute passa la consulta a un altre servidor

27 Whois

Whois eacutes un sistema que emmagatzema les dades relacionades amb els noms de

dominis proporcionant informacioacute de la propietat drsquoaquests i qui eacutes el responsable Whois teacute el

seu origen als inicis drsquoInternet quan el Grup de Treball de Enginyeria en Internet (IETF) va

publicar un protocol per als usuaris de ARPANET Aquest protocol va ser heretat i mantingut per

la ICANN quan es va crear al 1998

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 23: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

16

Amb el creixement drsquoInternet ICAAN va delegar la gestioacute drsquoaquest directori per

continents per facilitar lrsquoacceacutes i la operativitat drsquoaquest passant de tenir un uacutenic directori a tenir

cinc aquests es coneixen com a Registres Regionals drsquoInternet (RIR) Les directrius del

repartiment de les adreces drsquoInternet en continents i per a usos especials estagrave recollida a les

directrius RFC 1466 i RFC 7249 en la primera srsquoespecifica els rangs drsquoadreces que pertany a cada

bloc Els servidors que srsquoencarreguen de donar suport a les cerques de tipus Whois en cada

continent soacuten

Nom Adreccedila drsquoInternet Zona geogragravefica

American Register for Internet Numbers (ARIN) whoisarinnet Amegraverica Anglosaxona

RIPE Network Coordination Centre (RIPE NCC) whoisripenet Europa Orient mitjagrave i Agravesia Central

Asia-Pacific Network Information Centre (APNIC) whoisapnicnet Agravesia i la Regioacute Paciacutefica

Latin American and Caribean Internet Address Registry (LACNIC) whoislacnicnet Amegraverica Llatina i el Carib

African Network Information Centre (AfriNIC) whoisafrinicnet Agravefrica

Taula 5 Servidors Whois dels diferents continents

Com es pot deduir les adreces IP puacutebliques dels equips poden ser una aproximacioacute a la

geolocalitzacioacute situant a aquests en un continent determinat Perograve cal tenir en compte que el

servei Whois nomeacutes indica la titularitat drsquoun domini el que vol dir que un equip amb una

determinada adreccedila IP que per la divisioacute de rangs IP es troba en continent pot indicar que el

titular drsquoaquesta i per tant les dades de contacte estan en un altre Aixiacute doncs no es pot

considerar un megravetode gaire fiable de geolocalitzacioacute ja quegrave tampoc eacutes la seva funcioacute

El que si eacutes important a lrsquohora de treballar amb aquest servei eacutes saber de quin continent

eacutes lrsquoadreccedila IP aixiacute es pot fer la consulta directament al servidor del continent concret

Lrsquoestructura del servei proporcionat per la IANA eacutes jeragraverquica els usuaris tenen adreces

IP assignades pels ISP que a la vegada obtenen el rang drsquoadreces assignat drsquouna autoritat LIR

(Local Internet Registry) o NIR (National Internet Registry) aquestes autoritats igualment

obtenen lrsquoassignacioacute del rang drsquoadreces IP del seu RIR corresponent que com ja hem dit es

divideixen per continents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 24: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

17

3 Anagravelisi de recursos

31 Geolocalitzacioacute IP

La geolocalitzacioacute IP es refereix a la possibilitat drsquoidentificar la ubicacioacute geogragravefica drsquoun

determinat equip a traveacutes de la seva adreccedila IP Lrsquoobjectiu final eacutes determinar la ubicacioacute indicant

el paiacutes la ciutat etc Igualment amb la geolocalitzacioacute es relaciona el concepte de

geocodificacioacute que es refereix a relacionar lrsquoadreccedila IP a una latitud i longitud geogragravefica per a

situar lrsquoequip geogragraveficament

Com srsquoha vist anteriorment lrsquoassignacioacute drsquoadreces IP eacutes un proceacutes jeragraverquic que va des

drsquouna autoritat global que eacutes la IANA fins als ISP locals els quals assignen les adreces concretes

als seus clients Soacuten aquests ISP els que en principi tenen la informacioacute concreta de a quina

ubicacioacute correspon una adreccedila IP Aixiacute doncs la geolocalitzacioacute dels equips es fa mitjanccedilant la

consulta de dades proporcionades pels ISP Aquestes dades estan emmagatzemades en

diferents bases de dades que poden ser de pagament o gratuiumltes i tenen una precisioacute variable

(entre un 50 o un 98)

Tambeacute existeix un protocol experimental que es va dissenyar al 1996 i que es recull en

la norma RFC 1876 anomenat DNS-LOC el qual relaciona la localitzacioacute geogragravefica amb el nom

de domini Aquesta informacioacute es troba en els servidors DNS que lrsquoimplementen encara que

sembla que no ha arribat a ser un sistema gaire utilitzat

La utilitat de la geolocalitzacioacute eacutes diversa habitualment srsquoutilitza amb les seguumlents

finalitats

- Seguretat moltes vegades els servidors reben atacs DDoS des de determinades zones

geogragravefiques la possibilitat de detectar aquestes zones permet denegar lrsquoacceacutes al

servidor des drsquoaquestes zones sense deixar sense servei a la resta mentre es soluciona

el problema de seguretat

- Comercial per a un negoci en xarxa pot ser una dada estrategravegica identificar des de quina

zona geogragravefica estagrave accedint un usuari Aquesta informacioacute pot determinar quins

productes tindran meacutes interegraves per al comprador i aixiacute el venedor pot modificar les

ofertes segons la geolocalitzacioacute del comprador

Aixiacute mateix existeixen comerccedilos a la xarxa que no proporcionen servei a

determinades zones geogragravefiques ja sigui per falta de distribucioacute o per tractar-se de

zones conflictives

A continuacioacute es mostren algunes de les bases de dades de geolocalitzacioacute IP meacutes

conegudes

311 MaxMind

Eacutes una de les empreses meacutes coneguda dedicada a la geolocalitzacioacute proveeix bases de

dades amb informacioacute de geolocalitzacioacute IP ofereix dos tipus de productes un de pagament

anomenat GeoIP i un de gratuiumlt anomenat GeoLite2 (drsquoaquesta opcioacute nomeacutes donaran suport

fins abril de 2018 i al 2019 ja no hi hauragrave la informacioacute de la latitud i la longitud) Ambdues soacuten

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 25: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

18

bases de dades amb informacioacute de les adreces IP relacionades amb lrsquoadreccedila geogragravefica La

diferencia eacutes el grau drsquoexactitud i el suport que es dona al client Les consultes a la base de dades

es poden fer tant en liacutenia a traveacutes drsquouna API com descarregant les dades i emmagatzemant-les

en una base de dades local per aquesta segona opcioacute es dona suport per a tenir la base de dades

actualitzada amb descarregues periogravediques El preu de la base de dades GeoIP canvia segons es

vulgui una precisioacute a nivell de paiacutes o de ciutat A la imatge seguumlent es mostren les tarifes drsquoaquest

servei

Ilmiddotlustracioacute 6 Tarifes MaxMind

312 IP2Location

Tambeacute es tracta drsquouna empresa dedicada a oferir serveis de geolocalitzacioacute al igual que

MaxMind ofereix la possibilitat drsquoaccedir a traveacutes drsquoAPI descarregant una base de dades o amb

un servei drsquoemmagatzematge en el nuacutevol Ofereix una ampla varietat de bases de dades on en

cada una srsquoincrementa la informacioacute per exemple la base de dades BD1 ofereix el paiacutes segons

lrsquoadreccedila IP i la BD24 ofereix el paiacutes regioacute ciutat latitud longitud codi postal zona horagraveria ISP

domini velocitat de xarxa codi drsquoagraverea el temps mogravebil elevacioacute i uacutes de la base de dades

Depenent del nombre de dades que es vol el preu variaragrave tal com es pot apreciar a continuacioacute

Ilmiddotlustracioacute 7 Tarifes IP2Location

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 26: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

19

313 Ipinfoio

Es una opcioacute que ofereix consultes a traveacutes del seu API similar a les altres dues perograve

molt meacutes senzilla eacutes gratuiumlta si es fan menys de 1000 consultes diagraveries Aquesta opcioacute pot ser

interessant per a solucions que no realitzin moltes consultes Realitzar consultes eacutes molt senzill

nomeacutes cal introduir lrsquoadreccedila web ipinfoio amb lrsquoadreccedila IP que es vol consultar a continuacioacute

ipinfoio8888

El retorn de la consulta eacutes la mateixa adreccedila IP el hostname localitzacioacute organitzacioacute

ciutat regioacute paiacutes i telegravefon si hi ha Es pot especificar que es vol rebre la resposta en format

JSON i tambeacute dona la possibilitat de realitzar consultes de camps concrets com pot ser ciutat o

paiacutes Els preus si srsquoexcedeixen les 1000 consultes diagraveries soacuten

Ilmiddotlustracioacute 8 Tarifes Ipinfoio

314 Ip-api

Finalment altra API que proporciona les dades sobre la geolocalitzacioacute drsquoun host eacutes Ip-

apicom es tracta drsquoun servei gratuiumlt que permet fer consultes molt complertes sobre dades de

geolocalitzacioacute Per defecte retorna els camps seguumlents

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 27: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

20

Nom Descripcioacute Exemple Tipus

status always success success string

country country United States string

countryCode country short US string

region regionstate short CA or 10 string

regionName regionstate California string

city city Mountain View string

zip zip code 94043 string

lat latitude 374192 float

lon longitude -1220574 float

timezone city timezone AmericaLos_Angeles string

isp ISP name Google string

org Organization name Google string

as AS number and name separated by space AS15169 Google Inc string

reverse Reverse DNS of the IP wi-in-f941e100net string

mobile mobile (cellular) connection true bool

proxy proxy (anonymous) true bool

query IP used for the query 1731946794 string

Taula 6 Taula de camps de IP-Api

I si hi cap error el format de missatges drsquoerror seguumlent

Nom Descripcioacute Exemple Tipus

status always fail fail string

message error message reserved range string

query IP used for the query 1731946794 string

Taula 7 Missatges derror de Ip-api

Tambeacute proporciona la possibilitat de personalitzar la consulta mostrant nomeacutes els

camps que es necessitin aixograve es fa indicant els camps desitjats a la pagravegina web i aquesta ens

indica un nuacutemero que cal afegir a la consulta tal com es mostra a continuacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 28: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

21

Ilmiddotlustracioacute 9 Pantalla de seleccioacute de camps

La consulta es realitzaragrave mitjanccedilant la seguumlent adreccedila web

httpip-apicomcsv8888fields=57561

I la resposta a la consulta eacutes la seguumlent

successUnited StatesCaliforniaMountain View374229-1220858888

32 Llenguatges de programacioacute

Per crear el producte es vol fer una aplicacioacute basada en finestres i que trobi la ruta entre

lrsquoequip local i un domini mitjanccedilant el protocol ICMP Per crear lrsquoaplicacioacute srsquoha avaluat diferents

llenguatges de programacioacute que es mostren a continuacioacute

321 Python

Es tracta drsquoun llenguatge de programacioacute que permet la programacioacute orientada a

objectes i a meacutes la creacioacute drsquoaplicacions basades en finestres Srsquoha utilitzat el IDE pyCharm per

avaluar les possibilitats que ofereix aquest llenguatge

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 29: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

22

Ilmiddotlustracioacute 10 Entorn PyCharm

Aquest IDE eacutes bastant complert i permet la creacioacute de projectes drsquouna manera molt

semblant al IDE Netbeans del qual es teacute meacutes coneixement A lrsquohora drsquoimplementar el programa

bagravesic que accedeixi als sockets RAW necessaris per a poder manipular i enviar paquets ICMP es

troba lrsquoinconvenient que soacuten necessaris permisos drsquoadministrador per a que funcioni

Lrsquoavantatge del llenguatge Python per altra banda eacutes que treballa directament amb sockets

RAW

322 C++

Altre llenguatge que srsquoha provat eacutes C++ aquest de la mateixa manera que Python tambeacute

permet treballar directament amb sockets RAW per tal de manipular i enviar els paquets ICMP

perograve igualment apareix el problema que lrsquoaplicacioacute srsquoha drsquoexecutar amb permisos

drsquoadministradors per a que funcioni correctament LrsquoIDE que srsquoha provat amb C++ ha estat Visual

Studio 2017 el qual ha resultat ser molt poc intuiumltiu convertint el temps drsquoaprenentatge

necessari per a realitzar un projecte drsquoaquestes caracteriacutestiques massa gran a meacutes de necessitar

una llicencia de pagament per a poder disposar de totes les caracteriacutestiques del IDE

323 Java

En el cas drsquoaquest llenguatge no es pot treballar directament amb sockets RAW per

manipular i enviar els paquets ICMP perograve disposa de llibreries de tercers que permeten realitzar

aquestes tasques utilitzant la llibreria WinPcap En concret la llibreria que srsquoha provat ha estat

JPcap la qual permet crear paquets ICMP i realitza funcions de captura de paquets i rebre les

respostes a les consultes Per a fer les proves srsquoha utilitzat el IDE Netbeans quegrave ja es coneixia

les proves han estat forccedila positives A meacutes al utilitzar la llibreria WinPcap no es necessari que

srsquoexecuti lrsquoaplicacioacute amb permisos drsquoadministrador

Altra avantatge que proporciona el IDE de Java Netbeans eacutes lrsquoassistent de creacioacute

drsquoaplicacions amb finestres que facilita molt la tasca de la creacioacute de lrsquoentorn de lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 30: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

23

Ilmiddotlustracioacute 11 Entorn IDE Netbeans 82

33 Serveis de Mapes

Altra caracteriacutestica del producte que es vol crear eacutes la possibilitat de mostrar els

diferents nodes trobats a la ruta dels paquets en un mapa identificant la ruta que segueixen

aquests Per aquest objectiu srsquohan buscat serveis a la xarxa que proporcionin les funcionalitats

desitjades

331 Open Street Map API

Es tracta drsquouna solucioacute Open Source la qual estagrave elaborada pels mateixos usuaris que

creen els mapes de manera colmiddotlaborativa La informacioacute geogragravefica es captura amb GPS mogravebils

i altres fonts lliures i aquesta es emmagatzemada en una base de dades sota llicencia ODbL

(Open Database License)

Ofereix una API molt complerta a lrsquohora de manipular els mapes i informar sobre noves

dades per afegir-les al mapa Pel que fa a crear marques i unir-les per a mostrar les rutes no es

troba una manera gaire eficient de fer-ho Lrsquoobjectiu de lrsquoAPI eacutes meacutes per afegir dades tal com ja

srsquoha dit Si es vol treballar amb aquest servei de mapes cal recoacuterrer a llibreries de tercers

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 31: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

24

Ilmiddotlustracioacute 12 Open Street Map

332 Google Maps API

Forma part del servei Google Maps eacutes una solucioacute que permet la seva utilitzacioacute gratuiumlta

amb un numero limitat de consultes Ofereix diferents API depenent de el que es vol

implementar amb aquestes Per poder utilitzar les API lrsquousuari srsquoha de registrar i indicar quina

API vol utilitzar i el nom del projecte Per a cada tipus drsquoAPI Google proporciona a lrsquousuari

registrat una clau (key) la qual srsquoha drsquoafegir a la consulta per que Google Maps respongui

En comparacioacute amb la solucioacute anterior aquesta proporciona meacutes versatilitat al oferir

diferents opcions meacutes ajustades a les necessitats de lrsquousuari En el cas del producte que es vol

realitzar hi ha dos API que poden ajustar-se als requisits previs

La primera opcioacute eacutes Google Static Maps aquesta eacutes una solucioacute web la qual mitjanccedilant

una consulta amb una URL que conteacute tots els paragravemetres desitjats retorna una imatge en format

jpg o png on es mostra el mapa demanat Per exemple amb la consulta

httpsmapsgoogleapiscommapsapistaticmapcenter=Gran20Canariaampzoom=2ampsize=64

0x350ampscale=2amppath=color0x0000ff|weight2|Lleida|Madrid|Parisampkey=AIzaSyD_V_IRBGpy

WQWJzpp8yEZIwLTfCbElBso lrsquoAPI retorna la imatge del mapa seguumlent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 32: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

25

Ilmiddotlustracioacute 13 Google Static Maps API

Els inconvenients que presenta aquesta API soacuten que es limita la resolucioacute magravexima del

mapa retornat a 640x480 piacutexels i si es vol una millor resolucioacute srsquoha de contractar un pla de

pagament aquesta eacutes una resolucioacute molt petita si es vol comprovar on estagrave situat exactament

cada marca I que es tracta drsquouna imatge estagravetica amb la qual no es pot interactuar eacutes a dir no

es pot ampliar la imatge o desplaccedilar-la

Lrsquoaltra opcioacute que pot complir amb les necessitats del projecte eacutes Google Maps JavaScript

API aquesta tambeacute eacutes una solucioacute web perograve la consulta es fa a traves de JavaScript i el que es

retorna eacutes una pagravegina web dinagravemica que es pot inserir en el projecte i permet interactuar amb

aquesta Drsquoaquesta manera generant una pagravegina web srsquoobteacute un mapa amb la informacioacute

desitjada que es pot manipular

Ilmiddotlustracioacute 14 Google Maps JavaScript API

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 33: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

26

En aquesta segona opcioacute no hi ha liacutemit de resolucioacute i tambeacute eacutes gratuiumlta si no srsquoexcedeix

el nombre magravexim de consultes A continuacioacute es pot veure el detall de tarifes per aquestes

opcions

Ilmiddotlustracioacute 15 Tarifes Google Maps JavaScript

34 Eleccioacute de recursos

Primerament srsquoha realitzat lrsquoeleccioacute del llenguatge de programacioacute ja quegrave la resta de

recursos hauran de poder utilitzar-se amb aquest Despreacutes de comparar les possibilitats que

ofereixen els tres llenguatges analitzats es pot veure que amb qualsevol es pot implementar un

programa que executi un traceroute perograve a lrsquohora de fer el programa srsquoha trobat meacutes intuiumltiu

amb Java utilitzant la llibreria JPcap amb aquesta llibreria es pot capturar els paquets ICMP

retornats amb facilitat i a meacutes aquesta llibreria eacutes un bon suport per a identificar els paquets

Altra avantatge que proporciona Java davant els altres llenguatges eacutes lo complerts que soacuten els

IDErsquos principals drsquoaquest llenguatge Eclipse i Netbeans Ambdoacutes ofereixen eines molt

complertes per crear aplicacions basades en finestres fent molt agravegil la creacioacute drsquoaquestes

mitjanccedilant les llibreries gragravefiques Swing Aixiacute doncs el llenguatge de programacioacute triat eacutes Java

i concretament srsquoutilitzaragrave lrsquoIDE Netbeans de Oracle per a implementar el producte

En segon lloc una vegada triat el llenguatge de programacioacute srsquoha avaluat quin recurs de

xarxa srsquoutilitzaragrave per identificar la latitud i la longitud de cada node En aquest cas una primera

eleccioacute eacutes MaxMind per ser un dels productes meacutes utilitzats en el camp de la geolocalitzacioacute IP

aquest proporciona dos tipus de megravetodes de treball un online de pagament que proporciona

les dades utilitzant un API de tercers i un altre offline que funciona descarregant-se les dades

en diferents arxius i despreacutes realitzant les consultes en local a aquests arxius Aquesta segona

opcioacute planteja dos problemes el primer i meacutes important eacutes que el conjunt drsquoarxius de una mida

de meacutes de 300 Mbytes la segona eacutes que no es dona suport ni actualitzacioacute drsquoaquests arxius a

partir de lrsquoabril de 2018 Lrsquoaltra opcioacute IP2Location tambeacute ofereix un megravetode offline descarregant

un fitxer en format CSV amb les dades perograve eacutes de pagament i si es vol obtenir la latitud i longitud

el preu eacutes massa elevat Drsquoaquesta manera queden descartades questes dos opcions encara que

semblen les meacutes utilitzades Entre les opcions gratuiumltes online hi ha una que destaca meacutes que

lrsquoaltra aquesta eacutes Ip-api aquesta ofereix el mateix servei que Ipinfo perograve amb les proves

realitzades teacute meacutes precisioacute a meacutes mitjanccedilant el format de seleccioacute de consulta permet

consultar nomeacutes les dades que es necessiten fent meacutes fagravecil la manipulacioacute drsquoaquestes Eacutes per

aixograve que finalment srsquoha optat per triar Ip-api com a servei drsquoinformacioacute de la geolocalitzacioacute

dels nodes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 34: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

27

Per uacuteltim cal seleccionar quin servei de mapes srsquoutilitzaragrave per a mostrar la informacioacute

dels nodes En aquest cas srsquohan avaluat dos serveis perograve el que ha mostrat ser meacutes complert

ha estat Google Maps En un principi srsquohan realitzat proves amb Google Static Maps el qual

ofereix totes les funcionalitats que es volen implementar perograve quan es vol redimensionar o

ampliar la imatge aquest no dona la possibilitat fent molt difiacutecil distingir els nodes quan aquests

es torben en una mateixa ciutat Lrsquoaltra opcioacute que ofereix Google Maps eacutes Google Maps

JavaScript amb aquesta opcioacute es pot generar una pagravegina web que es pot inserir en lrsquoaplicacioacute

mitjanccedilant Java Swing i permet redimensionar el mapa fer zoom de la zona que es vol veure

amb meacutes detall o canviar el format del mapa a vista sategravelmiddotlit si es prefereix Finalment el servei

de mapes triat eacutes Google Maps JavaScript

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 35: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

28

4 Disseny de lrsquoaplicacioacute

41 Cas drsquouacutes

Lrsquoaplicacioacute a de permetre que lrsquousuari intrueixi un domini o adreccedila IP i aquesta retorni

en primer lloc els nodes que hi ha entre lrsquoequip origen i el domini indicat Una vegada acceptat

el domini lrsquoaplicacioacute generaragrave el llistat de nodes i al finalitzar mostraragrave automagraveticament aquests

i la ruta en un mapa per tal de ubicar-los geogragraveficament

Altra funcionalitat que ha de proporcionar lrsquoaplicacioacute eacutes la presentacioacute de les dades

corresponents al domini demanat que estan emmagatzemades en el servidor Whois

corresponent Aquesta funcioacute seragrave independent de la de realitzar la traccedila i mostra de dades en

el mapa i es podragrave realitzar en qualsevol moment del proceacutes

Ilmiddotlustracioacute 16 Cas dus

42 Diagrama drsquoEstats

Els estats que tindragrave lrsquoaplicacioacute seran els que es detallen a continuacioacute

Lrsquousuari introduiragrave lrsquoadreccedila del domini a consultar

Si lrsquoadreccedila no eacutes correcta lrsquoaplicacioacute ha de indicar-ho i demanar que es torni a ficar una

adreccedila valida

Si lrsquoadreccedila eacutes valida es podran realitzar dues accions independents

Si es demana lrsquoinici de la traccedila srsquoinicia aquesta per determinar els nodes que hi ha entre

lrsquoequip local i el domini

Es mostren les dades dels nodes trobats amb les dades necessagraveries

Es genera i es mostra el mapa amb la informacioacute

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 36: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

29

Si es tria la consulta de la informacioacute Whois es realitza la consulta drsquoaquesta al servidor

Whois

Es mostra per pantalla la informacioacute Whois obtinguda del servidor

Ilmiddotlustracioacute 17 Diagrama destats

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 37: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

30

43 Diagrama de sequumlegravencia

Les accions que realitzaragrave lrsquoaplicacioacute per a complir amb els seus objectius es recullen en

el diagrama de sequumlegravencia seguumlent

Ilmiddotlustracioacute 18 Diagrama de sequumlegravencia

Les accions es detallen a continuacioacute

1 Lrsquousuari introdueix lrsquoadreccedila del domini del qual es vol saber els detalls de la traccedila

2 Lrsquoaplicacioacute comprova que lrsquoadreccedila introduiumlda eacutes una adreccedila valida

3 Srsquoinicia un bucle de cerca de nodes

4 Es realitza una consulta ICMP modificant el camp TTL

5 Una vegada es teacute la resposta del node corresponent es fa una consulta al servei de

geolocalitzacioacute de les dades geogragravefiques del node concret

6 Es reben al sistema les dades de la consulta

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 38: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

31

7 Srsquoafegeixen les dades rebudes en una taula per a la seva posterior utilitzacioacute

8 Una vegada finalitzat el bucle de cerca es mostren les dades per pantalla

9 Es mostra a lrsquousuari les dades dels nodes trobats

10 Igualment es demana al servei de mapes que generi la imatge del mapa amb la

informacioacute recollida a la taula de nodes

11 El servei de mapes retorna al sistema la imatge de mapa generada

12 El sistema per la seva banda treu per pantalla el mapa creat

13 Lrsquousuari pot veure per pantalla les dades obtingudes al mapa

14 Lrsquousuari demana la informacioacute que pot tenir el servei Whois del domini demanat

15 Es passa la solmiddotlicitud feta al sistema per tal que iniciiacute la consulta

16 Srsquoidentifica a quin continent pertany el domini per fer la consulta al servei Whois

concret

17 Es fa la consulta al servei Whois concret

18 El servei Whois retorna la informacioacute del domini al sistema

19 El sistema mostra la informacioacute per pantalla

20 Lrsquousuari pot consultar la informacioacute proporcionada pel servidor Whois per pantalla

44 Diagrama de classes

Per concretar les especificacions dissenyades srsquoutilitzaragrave la programacioacute orientada a

objectes (POO) amb la qual es defineixen els objectes que seran la base dels processos En

aquesta aplicacioacute els objectes principals soacuten els nodes (Node) el mapa (Mapa2) i la informacioacute

del domini en Whois (Whois) Amb aquests srsquohauran drsquoimplementar els megravetodes necessaris per

acomplir els objectius i alguna classe auxiliar per tal drsquoaconseguir lrsquoaplicacioacute amb finestres que

srsquoha marcat com objectiu seguidament es mostra el diagrama de classes creat

Ilmiddotlustracioacute 19 Diagrama de classes

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 39: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

32

La classe Node contindragrave els atributs per tal de definir el node i que despreacutes seran

necessaris per a la seva manipulacioacute igualment tambeacute srsquohan de crear els megravetodes setter i getter

necessaris

id el qual eacutes un nuacutemero enter que srsquoutilitzaragrave per a la seva identificacioacute i se li assignaragrave

per ordre de creacioacute proporcionant informacioacute de la seva posicioacute en la traccedila

IP adreccedila IP associada al node creat

cannonicalName aquesta informacioacute es refereix al nom que teacute assignat el node al servei

DNS

city ciutat on es troba ubicat el node

country paiacutes on es troba ubicat el node

latitud valor de la latitud geogragravefica relacionada amb el node

longitud valor de la longitud geogragravefica relacionada amb el node

La classe Mapa2 per la seva banda recull les dades necessagraveries per crear el mapa i

mostrar-lo i conteacute els atributs

punts que eacutes un ArrayList amb els nodes creats per la traccedila

image es tracta drsquouna cadena de text que conte la informacioacute de la pagravegina web que

mostra el mapa generat

A meacutes en aquesta classe Mapa2 srsquoha afegit un megravetode getter per poder accedir al atribut

image

Lrsquoaltre objecte creat eacutes Whois aquest conteacute els megravetodes per obtenir la informacioacute del

servidor Whois i els atributs per emmagatzemar-la

domain paragravemetre que rep per tal de saber de quin domini ha de fer la consulta al

servei Whois

whois on srsquoemmagatzema la informacioacute obtinguda per mostrar per pantalla

De la mateixa manera srsquoha de crear un megravetode getter per accedir a la informacioacute

continguda a lrsquoatribut whois

Segons les indicacions per tal de crear una aplicacioacute de finestres es recomana que la

classe principal no sigui la classe de la finestra principal per tal drsquoevitar problemes Per aquest

motiu es crearagrave una classe anomenada GeolocalitzacioIP la qual eacutes lrsquoencarregada de inicialitzar

lrsquoaplicacioacute Aquesta no teacute cap megravetode ni atribut ja que la seva uacutenica funcioacute eacutes inicialitzar la

finestra principal

La classe FinestraPrincipal eacutes la que conteacute les funcions principals de lrsquoaplicacioacute i des drsquoon

es llancen les altres classes Aixiacute doncs aquesta classe conteacute els seguumlents atributs

srcIPPubica conteacute lrsquoadreccedila IP puacuteblica de lrsquoequip on srsquoexecuta lrsquoaplicacioacute

dstIP srsquoemmagatzema lrsquoadreccedila IP del domini objectiu de la traccedila

nodesTrace eacutes una ArrayList amb tots els nodes que es trobaran al fer la traccedila

Els megravetodes drsquoaquesta classe FinestraPrincipal seran els necessaris per poder portar a

terme les funcionalitats demanades

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 40: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

33

ObtenirMAC eacutes lrsquoencarregat de retornar lrsquoadreccedila MAC de la adreccedila IP demanada

crearMapa(Node node) aquesta funcioacute crearagrave un mapa amb un node com a centre

crearMapa(ArrayList ltNodegt punts) crea un mapa amb els nodes continguts a la

ArrayList punts

getDstIP megravetode getter per tal drsquoaccedir a lrsquoadreccedila IP guardada a dstIP

inserirLineaJTNodes eacutes el megravetode de inserir els nodes a la taula que es mostra a la

finestra principal

netejarJTNodes esborra els nodes que es mostren a la taula de la finestra principal

obtenirIPPublica retorna lrsquoadreccedila IP puacuteblica de lrsquoequip en el que srsquoestagrave executant

lrsquoaplicacioacute

obtenirIPdst retorna lrsquoadreccedila IP del domini solmiddotlicitat

traceRun megravetode que realitza la consulta ICMP i emmagatzema per a cada resposta el

node que la ArrayList nodesTrace

Finalment tenim la classe FinestraWhois que com a uacutenic objectiu ha de mostrar les

dades obtingudes a Whois en una finestra a part de la finestra principal

45 Disseny de les finestres

El disseny que es vol crear eacutes drsquoaspecte senzill sense gaires elements a la finestra per tal

de no carregar-la visualment i a la vegada es vol que aquesta mostri tota la informacioacute

demanada Per aquest motiu es vol crear una finestra principal com la que es mostra a

continuacioacute

Ilmiddotlustracioacute 20 Disseny finestra principal

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 41: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

34

En la qual hi hauragrave una espai per a ficar el domini o adreccedila IP que es vol utilitzar al costat

es mostraran dos botons per a realitzar les dues tasques principals de lrsquoaplicacioacute A la dreta es

mostraragrave la informacioacute relativa a lrsquoadreccedila IP puacuteblica de lrsquoequip local i lrsquoadreccedila IP de destiacute

A sota drsquoaquesta informacioacute es mostraragrave una taula amb la informacioacute relativa a cada

node que srsquoaniragrave incrementant a cada moment I a la part inferior es mostraragrave el mapa generat

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 42: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

35

5 Implementacioacute del producte

A lrsquohora de crear el producte srsquohan de fer els paquets ICMP que srsquoenviaran a traveacutes de

la xarxa per a realitzar el proceacutes de traccedila que ens identificaragrave els diferents nodes entre lrsquoorigen i

el host de destiacute Aprofitant la llibreria Jpcap srsquohan implementat els paquets tant a nivell de xarxa

o Ethernet com a nivell IP tal com srsquoexplicaragrave meacutes endavant

Per poder crear els paquets en aquests nivells srsquoha drsquoobtenir les seguumlents dades

Adreccedila IP de destiacute

Adreccedila IP puacuteblica drsquoorigen

Adreccedila MAC drsquoorigen

Adreccedila MAC de la porta drsquoenllaccedil que eacutes el destiacute del primer salt que faragrave el paquet i

qui despreacutes srsquoencarregaragrave de redirigir els paquets al seguumlent destiacute a nivell de xarxa

Una vegada creats els paquets amb aquestes dades es realitzaragrave un bucle incrementant

el valor TTL en cada paquet i srsquoenviaragrave i aprofitant les funcionalitats de la llibreria Jpcap es

capturaran les respostes i es processaragrave la informacioacute rebuda

El seguumlent pas tal com srsquoha dit eacutes processar la informacioacute eacutes a dir amb la adreccedila IP de

resposta srsquoutilitzaragrave un servei de geolocalitzacioacute Ip-apicom per tal de saber la latitud longitud

ciutat i paiacutes drsquoaquesta adreccedila Tambeacute srsquoutilitzaragrave una altra llibreria de Java per a consultar el

canonical name de cada node pel qual es coneix aquest als servidors DNS i que srsquoanomena

InetAddress

A continuacioacute amb tota aquesta informacioacute srsquoimplementaragrave el mapa amb la localitzacioacute

dels nodes i la ruta que segueixen els paquets durant el proceacutes de comunicacioacute Aquesta

funcionalitat es crea utilitzant Google Maps Script implementant una pagravegina web local que

realitza la consulta a aquesta API i mostrant-la en lrsquoaplicacioacute gracies a les llibreries de JavaFX

que ens permeten mostrar pagravegines web en un JFXPanel

Altra funcionalitat que srsquoinclou en lrsquoaplicacioacute eacutes la possibilitat de consultar la informacioacute

que hi ha als servidors de el servei Whois sobre el domini de destiacute En aquest cas la consulta es

fa directament al servei Whois perograve cal tenir en compte que aquest servei divideix els servidors

per continents i cal consultar al servidor correcte per obtenir la informacioacute detallada Per a

realitzar aquesta tasca primer es fa una consulta a un arxiu en formant CSV per a identificar a

quin continent pertany lrsquoadreccedila i quin eacutes el servidor drsquoaquest continent despreacutes nomeacutes es

necessari fer la consulta a aquest servidor en concret

Finalment cal implementar lrsquoaplicacioacute dintre drsquoun entorn de finestres tal com fixa

lrsquoobjectiu i per a complir amb aquest utilitzarem les llibreries de Java Swing les quals ens

permeten crear finestres amb botons i menuacutes tal com srsquoha dissenyat

A continuacioacute es detallaragrave com srsquoha realitzat cada pas

51 Creacioacute de paquets i traccedila

Tal com ja slsquoha dit per poder realitzar la traccedila dels paquets srsquoutilitzaran les funcionalitats

de la llibreria Jpcap Aquesta llibreria teacute com a objectiu realitzar tasques de captura i anagravelisis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 43: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

36

dels paquets de xarxa que es reben per un adaptador de xarxa concret Encara que el nostre

objectiu no es crear una aplicacioacute sniffer si que es poden aprofitar aquestes caracteriacutestiques per

a implementar lrsquoaplicacioacute ja que ens permet enviar i analitzar paquets de xarxa El funcionament

drsquoaquesta eacutes el seguumlent

Identificar amb quin adaptador de xarxa es treballaragrave per tal que aquesta analitzi els

paquets que entren per aquest

Inicialitzar el capturador de paquets de Jpcap indicant lrsquoidentificador de lrsquoadaptador de

xarxa

Crear i enviar els paquets ICMP

Crear un bucle que analitza el tragravefic que es rep per lrsquoadaptador de xarxa i nomeacutes

capturar els paquets del tipus que srsquoha especificat en aquest cas les respostes ICMP

Aquest bucle finalitzaragrave en el moment de que srsquoarribi al host destiacute o es superi en nombre

magravexim de salts

Aixiacute doncs srsquoha creat el codi necessari per a poder identificar lrsquoadaptador de xarxa amb

el que lrsquoaplicacioacute treballaragrave el qual primer crea una llista drsquoadaptadors que teacute la magravequina origen

i despreacutes utilitzant lrsquoadreccedila MAC de lrsquoadaptador local es realitza una cerca per aquesta llista fins

trobar lrsquoadreccedila MAC que coincideix obtenint aixiacute lrsquoidentificador que srsquoutilitzaragrave per inicialitzar el

capturador

Srsquoha inclograves una funcioacute denominada ObtenirMAC() que retorna lrsquoadreccedila MAC de lrsquoequip i

permet aixiacute buscar-la en el llistat que retorna JpcapCaptorgetDeviceList()

En aquest moment ja es pot inicialitzar el capturador de paquets amb lrsquoidentificador de

lrsquoadaptador de xarxa tal com es mostra en el codi seguumlent

Una vegada inicialitzat el capturador de la llibreria Jpcap eacutes el moment de preparar els

paquets ICMP que srsquoenviaran a traveacutes de la xarxa cap al equip destiacute Durant el proceacutes

drsquoinicialitzacioacute del capturador ja hem obtingut lrsquoadreccedila MAC de lrsquoequip drsquoorigen igualment

tenim lrsquoadreccedila IP de destiacute ja que per comenccedilar el proceacutes de traccedila cal introduir el domini o

lrsquoadreccedila IP de destiacute (tant si srsquointrodueix una o altra el programa obteacute o verifica lrsquoadreccedila IP de

destiacute) i tambeacute es teacute lrsquoadreccedila IP drsquoorigen la qual srsquoobteacute automagraveticament al iniciar el programa

Aixiacute doncs cal trobar lrsquoadreccedila MAC del destiacute del primer salt que faragrave el paquet i aquesta eacutes la de

la porta drsquoenllaccedil o gateway Per obtenir aquesta adreccedila existeixen diferents maneres perograve en

aquesta aplicacioacute srsquoha decidit aprofitar que es teacute inicialitzat el capturador de paquets de Jpcap

i enviar una consulta a una pagravegina web que es sap que contestaragrave com eacutes googlecom Es

Inicialitzem capturador de paquets

NetworkInterface device=list[srcId]

captor=JpcapCaptoropenDevice(device2000false1000)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 44: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

37

configura el capturador de paquets per tal que nomeacutes escolti els paquets TCP a la adreccedila IP de

lrsquoequip drsquoorigen Una vegada es rep la resposta nomeacutes cal extreure el valor de lrsquoadreccedila MAC de

destiacute del paquet que srsquoenvia

En aquest moment ja es poden generar els paquets de consulta ICMP que srsquoenviaran a traveacutes de la xarxa per a identificar els equips intermedis Per aquesta tasca Jpcap proporciona dos megravetodes un per a crear els paquets ICMP i lrsquoaltre per a generar el paquet de xarxa Aquests faciliten molt la tasca de crear els paquets donat que nomeacutes cal proporcionar les dades ja obtingudes

El camp de dades es de 32 bytes i srsquoha emplenat amb 0 i el valor del camp verificacioacute (checksum) tambeacute srsquoha establert a 0

Lrsquouacuteltim pas abans de iniciar la captura de la traccedila eacutes inicialitzar el filtre del capturador per tal que aquest pugui analitzar les dades necessagraveries retornades pels equips intermedis Aixograve es realitza amb la comanda que es mostra a continuacioacute

Finalment es crea el bucle per tal de capturar tots els paquets ICMP rebuts i analitzar la resposta segons el codi ICMP aixiacute mateix dintre drsquoaquest bucle es fa una crida a la classe Node per a generar per a cada equip intermedi un objecte drsquoaquesta classe amb les seves dades i srsquoemmagatzema aquest en una taula que serviragrave al finalitzar el proceacutes de traccedila per generar el mapa Un dels paragravemetres importants inicialitzats abans del bucle eacutes lrsquoobjecte JpcapSender el qual eacutes lrsquoencarregat drsquoenviar el paquet ICMP a meacutes srsquoha establert un liacutemit de salts de 30 que eacutes el nombre de salts magravexim habitual per tal drsquoarribar drsquoun equip a un altre a Internet Altre paragravemetre important eacutes hop_limit que eacutes el valor de TTL i que srsquoincrementaragrave cada cop al bucle

52 Geolocalitzacioacute IP dels nodes

Durant el proceacutes de deteccioacute dels nodes cada cop que es rep la notificacioacute drsquoun salt es genera un objecte Node el qual conteacute tota la informacioacute necessagraveria drsquoaquest (identificador adreccedila IP canonical name paiacutes ciutat latitud i longitud) Per a generar aquests objectes Node srsquoha creat un megravetode constructor el qual rep el identificador (que serveix per a situar-lo en la posicioacute correcta de la taula) i lrsquoadreccedila IP amb aquestes dades es genera lrsquoobjecte

A lrsquohora de crear un objecte de la classe Node srsquohan tingut en compte dos possibilitats

Es tracta drsquouna resposta de temps excedit la qual cosa significa que el salt corresponent ha trigat massa temps en respondre Llavors lrsquoadreccedila IP es considera com Timeout i els camps restants srsquoemplenen amb un guio (ldquo-ldquo) per expressar que estan buits

Es tracta drsquouna resposta amb una adreccedila IP vagravelida en aquest cas es realitza la consulta de les dades al servei Ip-apicom Aquest servei retorna les dades demanades mitjanccedilant un nuacutemero (que es proporciona a la pagravegina web del servei) en format CSV (comma-separated values) Una vegada rebudes les dades a traveacutes de la consulta a la

Es genera el filtre per capturar nomes els paquets icmp amb destiacute host

captorsetFilter(icmp and dst host +srcIPgetHostAddress()true)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 45: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

38

URL del servei aquestes es llegeixen i es copien en un taula per poder assignar els valors als paragravemetres corresponents de lrsquoobjecte

Tambeacute hi ha dues possibilitats quan el node teacute una adreccedila IP eacutes a dir respon a la consulta ICMP aquestes soacuten

Lrsquoadreccedila IP pertany al rang drsquoadreces reservades per a xarxes privades

Lrsquoadreccedila IP pertany al rang drsquoadreces puacutebliques

En el primer cas Ip-apicom retorna un missatge indicant que es tracta drsquouna adreccedila IP privada i el primer camp conteacute el valor fail i el segon camp el valor private range aquest segon camp srsquoassigna al paragravemetre de lrsquoobjecte canonical name per tal drsquoindicar que es tracta drsquouna adreccedila IP privada

En el segon cas es capturen els valors necessaris per a identificar el node i srsquoassignen als paragravemetres corresponents

53 Mostrar informacioacute en un mapa

Lrsquoobjectiu de mostrar la informacioacute dels nodes en un mapa eacutes veure de manera meacutes clara el recorregut que realitzen els paquets a traveacutes drsquoInternet fins arribar al destiacute indicant la ubicacioacute geogragravefica drsquoaquests Tal com srsquoha descrit en lrsquoapartat drsquoanagravelisi de recursos la opcioacute triada per a complir aquest objectiu ha estat Google Maps JavaScript El funcionament drsquoaquest servei es basa en fer una consulta JavaScript a lrsquoAPI de Google aquesta consulta ens mostra a traveacutes de una pagravegina web el mapa amb les dades demanades Aixiacute doncs cal tenir en compte dos tasques principals per tal drsquointegrar el mapa en lrsquoaplicacioacute

Generar una pagravegina web crear la consulta JavaScript dintre drsquoaquesta i rebre el mapa generat

Inserir a lrsquoentorn gragravefic un panell on es pugui visualitzar aquesta pagravegina web

La primera tasca es realitza mitjanccedilant la classe Mapa2 aquesta rep els nodes que ha de recollir el mapa i srsquoencarrega de generar la pagravegina web (arxiu en format html) amb la consulta JavaScript

En primer lloc es genera lrsquoarxiu html en la mateixa ubicacioacute on es troba lrsquoaplicacioacute i es guarda com a paragravemetre la ruta drsquoaquest tal com es mostra en el codi seguumlent

A continuacioacute srsquoextreu les dades de latitud i longitud de cada node mitjanccedilant un bucle i es va emplenant una cadena de text que seragrave posteriorment guardada al fitxer mapahtml creat a lrsquoinici Amb aquestes dades se li proporciona a lrsquoAPI de Google la posicioacute de cada node i es genera la ruta denominada polilinea i els marcadors de cada node identificat denominats markers Igualment important eacutes inserir la clau proporcionada per Google pera identificar el

File f=new File(mapahtml)

thisimage=fgetAbsolutePath()

FileWriter mapa = null

PrintWriter m = null

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 46: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

39

projecte key Tambeacute cal tenir en compte que no srsquoinclouen els nodes amb IP privada ni els nodes que no han contestat (timeout) al no tenir dades de latitud i longitud

En aquesta classe Mapa2 srsquoha afegit un altre megravetode constructor amb les mateixes caracteriacutestiques que el que srsquoha descrit perograve en aquest cas nomeacutes es rep el paragravemetre del node inicial que eacutes on es troba el equip origen La funcioacute drsquoaquest eacutes crear el mapa que es mostra al inicialitzar la aplicacioacute

Finalment per poder mostrar el mapa a lrsquoaplicacioacute es crea un panel on es mostri la pagravegina web generada amb el mapa per a fer-ho possible srsquoutilitzen diferents llibreries de JavaFX les quals permeten crear un visor web que es pot cridar des de lrsquoaplicacioacute

54 Informacioacute Whois

Aquesta informacioacute srsquoha decidit mostrar-la en una finestra diferent a la principal i que

pot aparegraveixer en qualsevol moment del proceacutes de traccedila si es demana Com srsquoha descrit aquesta

funcioacute teacute per objectiu mostrar la informacioacute disponible al servidor corresponent al continent de

lrsquoadreccedila destiacute Aquesta informacioacute estaragrave continguda en un objecte anomenat Whois el qual

contindragrave una cadena en format html amb la informacioacute rebuda del servidor

Aixiacute doncs en primer lloc es busca el continent i per tant el servidor de dades de Whois

al que pertany el equip de destiacute de la consulta Aixograve es realitza aiumlllant el primer nuacutemero decimal

de ladreccedila IP destiacute i despreacutes buscant el servidor que li correspon en una taula en format CSV

Una vegada es teacute el servidor concret cal obrir un socket de comunicacioacute amb aquest

servidor amb el port de destiacute 43 que srsquoutilitza per a fer les consultes El seguumlent pas una vegada

obert el socket de comunicacioacute eacutes enviar lrsquoadreccedila IP del domini que es vol consultar i es rep

tota la informacioacute referent a aquest node que hi ha en el servidor I tal com ja srsquoha dit es guarda

en una cadena de text en format html A continuacioacute es pot veure una imatge de com es mostra

la informacioacute en la finestra

Ilmiddotlustracioacute 21 Finestra Whois

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 47: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

40

55 Entorn gragravefic de lrsquoaplicacioacute

En aquest punt tambeacute srsquoha seguit el disseny realitzat en la fase de disseny aixiacute doncs

lrsquoaplicacioacute consta drsquouna finestra on es distribueix la informacioacute que srsquoobteacute de forma que sigui

fagravecil visualitzar-la per part de lrsquousuari

Inicialment apareix a la finestra la taula de nodes buida i el mapa sense cap punt definit

encara tambeacute es pot apreciar que hi ha un espai en blanc on srsquoha drsquointroduir el domini o lrsquoadreccedila

IP drsquoaquest i al costat dos botons per a realitzar les accions de Traccedila i Whois A la part superior

dreta tambeacute srsquoha inclograves la informacioacute de lrsquoadreccedila IP puacuteblica del equip origen i quan srsquointrodueix

el domini o lrsquoadreccedila IP de destiacute tambeacute apareix lrsquoadreccedila IP de destiacute Altre component que srsquoha

afegit seguint el disseny eacutes un menuacute a la barra superior de lrsquoaplicacioacute on es pot triar entre Arxiu

(amb la possibilitat de guardar o obrir una traccedila) o sortir En aquest punt si que srsquoha diferit del

que srsquohavia dissenyat inicialment la raoacute eacutes que srsquoha vist innecessari afegir dos camins per a fer

una mateixa funcioacute aixiacute doncs no srsquoha ficat lrsquoopcioacute Whois a la barra i srsquoha substituiumlt per lrsquoopcioacute

de sortir per facilitar la possibilitat de tancar lrsquoaplicacioacute des drsquoaquesta Finalment tambeacute srsquoha

afegit un requadre a la part inferior per tal de delimitar lrsquoespai per on apareixeran els missatges

drsquoerror si nrsquohi ha com poden ser que la URL ha estat mal introduiumlda o si srsquohan excedit el nombre

magravexim de salts

La implementacioacute de lrsquoentorn gragravefic srsquoha realitzat amb les llibreries de Java Swing

aprofitant les possibilitats que facilita el IDE Oracle Netbeans Des drsquoaquest es pot accedir a la

finestra de disseny de la classe del tipus JFrame i permet afegir els objectes necessaris a aquesta

(botons menuacutes taules scrolls) i programar el seu comportament drsquouna manera molt

intuiumltiva

Altre punt important de la implementacioacute de lrsquoentorn gragravefic eacutes el comportament dels

diferents components durant lrsquoexecucioacute de lrsquoaplicacioacute Sobre aquest aspecte slsquohan pres les

seguumlents decisions

A lrsquoinici tots els components estan actius si es prem el botoacute traccedila sense introduir cap

adreccedila apareix un missatge drsquoerror Si es prem el botoacute Whois aquest no mostra res

Ilmiddotlustracioacute 22 Finestra principal (Inici)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 48: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

41

Quan srsquoinicia el proceacutes de traccedila el botoacute de traccedila es desactiva per evitar que es torni a

preacutemer i llanccedilar meacutes drsquouna traccedila alhora Per tal drsquoaturar la traccedila abans drsquoacabar apareix

un botoacute Stop al costat del botoacute desactivat de Traccedila que permet fer aquesta accioacute

Igualment apareix lrsquoadreccedila IP de destiacute al quadre de text destinat per aixograve A la taula de

nodes es van afegint els salts realitzats amb les dades corresponents en el moment que

la taula estagrave plena apareix una barra scroll al costat de la taula que es situa a la part

inferior per tal de poder veure el nodes que es van afegint tambeacute aquest scroll permet

desplaccedilar la taula per revisar tots els nodes

A la finalitzacioacute de la traccedila desapareix el botoacute Stop i torna a quedar actiu A la vegada

es mostra el mapa amb els nodes identificats i la traccedila trobada

Si apareix un missatge drsquoerror es queda tot com a lrsquoinici quan es comenccedila una nova

traccedila correcta aquest missatge desapareix

Seguidament es mostren les pantalles amb les diferents opcions

Ilmiddotlustracioacute 23 Finestra principal durant el proceacutes de traccedila

Ilmiddotlustracioacute 24 Pantalla principal al finalitzar el proceacutes de traccedila

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 49: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

42

Per habilitar i deshabilitar els botons srsquoha configurat a les accions dels botons

corresponents el valor de les opcions setvisible i setenable com true o false segons correspongui

Tambeacute srsquoha inclograves una barra de menuacute on es pot trobar dos opcions Arxiu i Sortir Dintre

del primer menuacute Arxiu srsquoha implementat lrsquoopcioacute de guardar les dades de la traccedila en un arxiu en

format CSV que es pot emmagatzemar en lrsquoequip origen per tal de recuperar quan es desitgi

Igualment srsquoha inclograves lrsquoopcioacute de recuperar aquest arxiu CSV i visualitzar la traccedila a la taula i el

mapa Aquestes dues opcions srsquohan creat utilitzant les funcionalitats de la llibreria JFileChooser

que permet obrir una finestra per explorar les carpetes del sistema i introduir el nom del fitxer

que es vol guardar o recuperar el nom drsquoaquest fitxer Una vegada creat o seleccionat el fitxer

aquesta retorna la ruta del mateix per tal de poder escriurersquol o llegir-lo

Lrsquoaltra opcioacute nomeacutes teacute la funcioacute de facilitar el tancament de lrsquoaplicacioacute quan lrsquousuari ho

desitgi mitjanccedilant la instruccioacute Systemexit(0)

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 50: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

43

6 Conclusions

Un cop finalitzada la implementacioacute del producte eacutes moment drsquoavaluar si srsquohan assolit

els objectius inicials que es plantejaven i crec que es pot afirmar que certament aquests

objectius srsquohan assolit Srsquoha implementat una aplicacioacute gragravefica que identifica els nodes que hi ha

entre un equip drsquoorigen i un de destiacute durant un proceacutes de comunicacioacute aquests nodes es poden

veure dintre drsquoun mapa juntament amb el camiacute que recorren els paquets i a meacutes es mostra la

informacioacute concreta dels nodes identificats aixiacute com la informacioacute que hi ha al servei Whois del

node destiacute I tot aixograve srsquoha fet implementant els paquets ICMP per tal de poder fer les consultes

Al comenccedilament drsquoaquest treball el problema meacutes gran que es plantejava era com

poder crear les consultes ICMP i capturar la resposta sense utilitzar programes ja creats com

Ping o Traceroute perograve durant el desenvolupament del projecte he pogut aprendre com aquest

proceacutes es pot realitzar utilitzant llibreries de Java i a meacutes la utilitzacioacute drsquoaquestes dona major

llibertat a lrsquohora de programar El no utilitzar un programa del sistema operatiu concret permet

que lrsquoaplicacioacute sigui meacutes exportable a altres sistemes operatius com Linux (encara que no srsquoha

provat lrsquoaplicacioacute en aquest)

Altre objectiu assolit en aquest cas personal eacutes aprendre a treballar amb serveis

disponibles a la xarxa Ha estat una experiegravencia molt enriquidora en aquest aspecte ja que el

proceacutes drsquoavaluacioacute dels diferents serveis de la xarxa i la posterior eleccioacute i implementacioacute mrsquoha

donat lrsquooportunitat de desenvolupar coneixements sobre com es poden utilitzar aquests

recursos

En el aspecte de la localitzacioacute drsquoequips a traveacutes de la seva adreccedila IP srsquoha comprovat

com la fiabilitat de les dades dels nodes eacutes molt relativa depegraven molt del servei que es consulta

i si aquest estagrave actualitzat Normalment els serveis meacutes actualitzats solen ser els de pagament

aixograve pot ser per que hi ha darrera una feina drsquoactualitzacioacute meacutes constant Tambeacute srsquoha vist com

finalment soacuten els ISP qui assigna les adreces IP als equips i drsquoaquesta manera soacuten ells qui saben

concretament a quina zona geogragravefica concreta correspon una adreccedila eacutes per aixograve que resulta

molt difiacutecil ubicar una adreccedila IP a una latitud i longitud exacta si el ISP no ha facilitat aquesta

informacioacute al servei concret

Altra conclusioacute que srsquoha extret una vegada comprovat el funcionament de lrsquoaplicacioacute eacutes

que els paquets realitzen molts salts entre llargues distancies per arribar al seu destiacute aixograve srsquoha

pogut comprovar fent la traccedila de dominis molt coneguts com googlees que encara que nomeacutes

srsquoidentifiquen alguns salts hi ha molts meacutes que no responen a la consulta ICMP i que tambeacute hi

soacuten

En lrsquoapartat referent al seguiment de la planificacioacute aquesta ha estat molt adequada ja

que srsquoha pogut seguir el ritme marcat sense realitzar correccions Fins i tot en algun moment

srsquoha treballat avanccedilant feina de les tasques seguumlents Aixiacute mateix la metodologia aplicada en

tot moment ha facilitat avanccedilar drsquouna manera ordenada i incremental

Finalment cal expressar que la realitzacioacute drsquoaquest TFG ha estat per a mi un proceacutes molt

positiu al poder crear un producte drsquouna manera global i totalment funcional

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 51: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

44

7 Glossari

Canonical name eacutes un tipus de registre que es troba als servidors DNS i serveix per a

indicar un alies de un nom de domini

DDoS (Distributed Denial of Service) eacutes un tipus drsquoatac a traveacutes de la xarxa que consisteix

en generar moltes consultes a un equip objectiu des drsquoun gran nombre drsquoequips atacants de

manera que srsquoaconsegueix que lrsquoequip objectiu no pugui atendre les demandes i es bloquegi

DNS (Domain Name System) conjunt de servidors que emmagatzemen els noms dels

dominis realcionats amb la seva adreccedila IP la seva funcioacute eacutes resoldre les consultes dels dominis

retornant la a dreccedila IP corresponent

Gateway o porta drsquoenllaccedil eacutes lrsquoequip de la xarxa encarregat de fer lrsquoencaminament dels

paquets cap a fora drsquouna xarxa o redirigir-los als altres equips de dintre de la xarxa local

Geocodificacioacute terme que es refereix a assignar referencies geogragravefiques de longitud i

latitud a punts concrets drsquoun mapa

Geolocalitzacioacute capacitat per obtenir la ubicacioacute geogragravefica real drsquoun objecte com pot

ser un radar un telegravefon mogravebil o un ordinador connectat a Internet

Host terme que srsquoutilitza a la informagravetica per a referir-se als equips que estan

connectats en una xarxa

ICMP protocol de missatges de control drsquoInternet eacutes un protocol que facilita el

diagnogravestic de possibles fallades de la xarxa mitjanccedilant lrsquoenviament i recepcioacute de paquets

especiacutefics

JavaScript llenguatge de programacioacute orientat a objectes molt utilitzat en la

programacioacute web que permet interfiacutecies drsquousuari i pagravegines web dinagravemiques

Jpcap llibreria especiacutefica de Java que permet treballar amb paquets de comunicacioacute i

realitzar tasques de captura de comunicacions pot treballar amb LibPcap i WinPcap

Ping aplicacioacute especiacutefica de Microsoft Windows que permet enviar consultes ICMP per

a realitzar tasques de diagnogravestic de la xarxa

Sniffer es refereix a un tipus drsquoaplicacioacute que srsquoutilitza per a realitzar captura de paquets

de la xarxa per tal de poder analitzar-los i realitzar anagravelisis de la xarxa

Traceroute aplicacioacute especiacutefica que srsquoutilitza per a realitzar la traccedila des drsquoun equip local

que lrsquoexecuta a un altre equip remot permet visualitzar els equips de comunicacioacute que hi ha

entre aquests

Whois servei que permet fer consultes de qui eacutes el propietari drsquoun determinat domini

WinPcap aplicacioacute que treballa en un sistema operatiu Windows i que permet accedir

a les comunicacions a nivell de paquets i datagrames

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 52: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

45

8 Bibliografia

1 IANA IANA OPv4 Address Space Registry httpswwwianaorgassignmentsipv4-

address-spaceipv4-address-spacexhtml

2 IANA Internet Control Message Protocol ICMP

httpswwwianaorgassignmentsicmp-parametersicmp-parametersxhtml

3 IANA Numbers Resources httpswwwianaorgnumbers

4 IETF (1981) RFC792- Internet Control Message Protocol

httpstoolsietforghtmlrfc792

5 Protocolo ICMP Protocolo de Mensajes de Control de Internet En PC Paso a Paso num

23 Pag 14-37

httpswwwnebrijaes~cmalagonseguridad_informaticaLecturasTCP-

V_ICMP_hxcpdf

6 Cisco Systems (2006) Understanding the Ping and Traceroute Commands

httpswwwciscocomcenussupportdocsios-nx-os-softwareios-software-

releases-121-mainline12778-ping-traceroutehtml

7 IETF (1989) RFC1122-Requirements for internet hosts- Communication Layers

httpstoolsietforghtmlrfc1122page-38

8 ICANN ICANN WHOIS httpswhoisicannorges

9 DAVIS CHRISTOPHER (2001) DNS LOC Geo-enabling the Domain Name System

httpswwwckdhrcomdns-loc

10 CANTERO GUSTAVO (2009) Obtener la Ciudad i el paiacutes de una direccioacuten IP en

Programando a Medianoche 24 de maig

httpwwwprogramandoamedianochecom200905obtener-la-ciudad-y-el-pais-de-

una-direccion-ip

11 Queacute es la geolocalizcioacuten por IP y cuanto revela tu direccioacuten fiacutesica en Xataka 5 de juny de

2017 httpswwwxatakacombasicsque-es-y-cuanto-revela-de-tu-la-

geolocalizacion-por-ip

12 ARDIOacuteNS ANDREA (2017) iquestQuieres localitzar direcciones IP Descubre 3 servicios web

gratis que funcionan en ProfessionalReview 7 de febrer

httpswwwprofesionalreviewcom20170207localizar-direccion-ip-servicios

13 AWAIS AHMAD (2017) What is the best API for geolocating an IP address en QUORA

20 drsquoabril httpswwwquoracomWhat-is-the-best-API-for-geolocating-an-IP-

address

14 AROCHE JAVIER(2010) Como saber la ubicacioacuten de un usuario en Maestros del Web 4

de febrer httpwwwmaestrosdelwebcomdetectar-ubicacion-usuario-

geolocalizacion

15 KUROSE JAMES F i ROSS KEITH W (2013) Computer Networking A top-down

approach Sixth Edition England Editorial Pearson

16 RUSTY HAROLD ELLIOTTE (2013) Java Network Programming Fourth Edition Estats

Units drsquoAmegraverica Editorial OrsquoReilly

17 WIELENGA GEERTJAN (2015) Beginning Netbeans IDE For Java DevelopersEstats

Units drsquoAmegraverica Editorial Apress

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 53: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

46

9 Annexos

91 Annex A Manual de instalmiddotlacioacute

Aquesta aplicacioacute srsquoha desenvolupat tal com ja srsquoha exposat durant la memograveria amb el

llenguatge de programacioacute Java Es per aquest motiu que es indispensable per tal que funcioni

tenir instalmiddotlada la versioacute corresponent de Java A continuacioacute srsquoenumeren els requisits

necessaris per a poder utilitzar lrsquoaplicacioacute

Sistema operatiu Windows 64 bits

Java versioacute 8 o superior

WinPcap versioacute 413

Jpcap versioacute 07

Seguidament es faragrave una explicacioacute de com cal instalmiddotlar aquest programari per poder

utilitzar sense problemes lrsquoaplicacioacute presentada en aquest TFG

911 Java

Per tal drsquoinstalmiddotlar la versioacute correcta de Java per a Windows nomeacutes cal accedir a la

seguumlent adreccedila de Internet httpswwwjavacomesdownloadwin10jsp Una vegada en

aquesta cal descarregar la versioacute de Java que apareix (que eacutes la uacuteltima versioacute disponible) i

executar lrsquoarxiu que ens proporcionen A partir drsquoaquest punt nomeacutes cal acceptar totes les

opcions que ens indiquen i realitzar la instalmiddotlacioacute al nostre equip

Una vegada finalitzada la instalmiddotlacioacute lrsquoaplicacioacute ja srsquoiniciaragrave perograve la part relativa a la traccedila

de nodes i mostra de mapes encara no funcionaragrave ja que aquesta part utilitza la llibreria Jpcap

per a crear i capturar els paquets ICMP

912 WinPcap

WinPcap es pot descarregar de lrsquoadreccedila httpswwwwinpcaporginstall una vegada

descarregat srsquohan de seguir els seguumlents passos

1 Executem lrsquoarxiu i apareix una finestra com la que es mostra a continuacioacute on caldragrave

preacutemer el botoacute ldquoNextrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 54: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

47

Ilmiddotlustracioacute 25 WinPcap inici dinstalmiddotlacioacute

2 En la seguumlent finestra es mostra la llicenciagrave drsquoutilitzacioacute del programa seragrave

necessari acceptar aquesta per poder prosseguir amb la instalmiddotlacioacute per fer-ho srsquoha

de preacutemer el botoacute ldquoI Agreerdquo

Ilmiddotlustracioacute 26 WinPcap acceptacioacute de llicencia

3 A continuacioacute la instalmiddotlacioacute dona lrsquoopcioacute de configurar que WinPcap srsquoexecuti

automagraveticament al inici del sistema operatiu marquem aquesta opcioacute per

assegurar-nos que estagrave el servei iniciat quan executem lrsquoaplicacioacute Una vegada

marcada la casella corresponent premem el botoacute ldquoInstallrdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 55: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

48

Ilmiddotlustracioacute 27 WinPcap configuracioacute

4 Finalment si el proceacutes drsquoinstalmiddotlacioacute srsquoha realitzat correctament sersquons mostraragrave

la corresponent finestra de finalitzacioacute de la instalmiddotlacioacute i en aquesta polsarem el

botoacute ldquoFinishrdquo per finalitzar el proceacutes

Ilmiddotlustracioacute 28 WinPcap finalitzacioacute dinstalmiddotlacioacute

913 Jpcap

Una vegada tenim instalmiddotlada la versioacute correcta de Java i la versioacute corresponent de

WinPcap cal realitzar la instalmiddotlacioacute de la llibreria Jpcap Aquesta instalmiddotlacioacute es realitza en dos

fases una automatitzada que instalmiddotla el client de 32 bits i una altra manual en la qual cal copiar

les llibreries dll per a Windows 64 bits (que actualment eacutes la versioacute meacutes utilitzada) Seguidament

es detalla aquesta instalmiddotlacioacute

1 La versioacute 07 de Jpcap es pot descarregar de la seguumlent adreccedila de Internet

httpssourceforgenetprojectsridsystemfilesnecessary20librariesJpcapSetu

p-

07exedownloaduse_mirror=netcologneampdownload=ampfailedmirror=jaistdlsour

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 56: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

49

ceforgenet o es pot fer una cerca drsquoaquesta ja que eacutes una llibreria que es troba

amb facilitat a la xarxa Una vegada descarregada executem lrsquoarxiu JpcapSetup-07

descarregat i apareix la finestra inicial drsquoinstalmiddotlacioacute seguumlent on sersquons demana que

triem lrsquoidioma de la instalmiddotlacioacute nomeacutes deixa seleccionar English i premem el botoacute

ldquoOKrdquo

Ilmiddotlustracioacute 29 Jpcap inici instalmiddotlacioacute

2 La seguumlent finestra que apareix ens dona la benvinguda a la instalmiddotlacioacute i nomeacutes dona

lrsquoopcioacute de cancelmiddotlar o seguir amb aquesta premem el botoacute ldquoNextrdquo

Ilmiddotlustracioacute 30 Jpcap benvinguda instalmiddotlador

3 En aquest moment es mostra la llicencia drsquous que igualment haurem drsquoacceptar per

poder continuar amb la instalmiddotlacioacute premem el botoacute ldquoI Agreerdquo

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 57: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

50

Ilmiddotlustracioacute 31 Jpcap acceptacioacute de llicencia

4 Veurem una pantalla on es mostra el progreacutes drsquoinstalmiddotlacioacute i una vegada aquest ha

finalitzat haurem de preacutemer el botoacute ldquoNextrdquo per avanccedilar a la seguumlent finestra

Ilmiddotlustracioacute 32 Jpcap proceacutes dinstalmiddotlacioacute

5 Finalment es mostra una finestra informativa indicant que el proceacutes drsquoinstalmiddotlacioacute ha

finalitzat premem ldquoFinishrdquo per acabar amb aquest i es tanca la finestra

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 58: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

51

Ilmiddotlustracioacute 33 Jpcap finalitzacioacute del proceacutes

En aquest punt de la instalmiddotlacioacute de Jpcap ja tenim la llibreria per a equips amb sistema

operatiu Windows amb 32 bits perograve cal copiar les llibreries jpcapdll per a Windows 64 bits per

que lrsquoaplicacioacute funcioni correctament en aquests sistemes Aixograve es faragrave tal com srsquoexplica

seguidament

Primerament es necessari fer la descarrega de lrsquoarxiu comprimit jpcap-x64-master zip

aquest es pot trobar a GitHub a la seguumlent adreccedila httpsgithubcomjovigbjpcap-x64

Una vegada descarregat localitzem lrsquoarxiu jpcapx64dll que es troba a dintre de la

carpeta lib dintre de lrsquoarxiu comprimit la ruta de la carpeta eacutes

jpcap-x64-master zipjpcap-x64-masterlib

Aquest arxiu se li ha de canviar el nom per Jpcapdll i copiar-lo en dues ubicacions

concretes de la carpeta de sistema Windows que es troben normalment a la unitat C la

ubicacioacute drsquoaquestes eacutes

CWindowsSystem32

CWindowsSysWOW64

Quan es realitzi aquesta operacioacute el sistema ens indicaragrave que ja existeix un arxiu amb

aquest nom cal substituir el ja existent pel que nosaltres hem canviat el nom Una vegada copiat

lrsquoarxiu Jpcapdll de 64 bits a les ubicacions indicades ja estaragrave lrsquoequip preparat per al correcte

funcionament de lrsquoaplicacioacute

Finalment per tal que la informacioacute WHOIS es mostri correctament cal assegurar-se

que lrsquoarxiu ipv4-address-spacecsv es troba a la mateixa carpeta que lrsquoexecutable de Java de

lrsquoaplicacioacute GeolocalitzacioIPjar ja que aquest eacutes necessari per fer la consulta del servidor Whois

corresponent

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 59: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

52

92 Annex B Manual drsquousuari

Una de les caracteriacutestiques drsquoaquesta aplicacioacute eacutes que el seu funcionament eacutes molt

senzill En aquest annex es faragrave una breu explicacioacute del funcionament drsquoaquesta

Per executar-la es pot fer des del mateix Windows fent doble clic sobre lrsquoarxiu

GeolocalitzacioIPjar que es troba a la carpeta dist del projecte GeolocaotzacioIP o des drsquouna

finestra Ms-dos situant-nos en la carpeta dist i escrivint la seguumlent instruccioacute

java ndashjar Geolocalitzaciojar

Una vegada executat el arxiu apareixeragrave la finestra principal de lrsquoaplicacioacute on es poden

fer totes les accions que aquesta ofereix i on es mostraragrave la informacioacute relativa als nodes i el

mapa tal com es mostra a continuacioacute

En aquesta pantalla inicial es poden veure els elements principals els botons i els menuacutes

drsquoaccioacute de lrsquoaplicacioacute a continuacioacute srsquoenumeren amb una breu explicacioacute de que fa cadascun

Menuacute ldquoArxiurdquo conteacute dos accions que soacuten la drsquoobrir i guardar una traccedila per poder

accedir a traces anteriors en qualsevol moment El funcionament drsquoaquestes

opcions eacutes molt senzill apareix una finestra per navegar per les carpetes de

lrsquoequip i poder seleccionar lrsquoarxiu que es vol obrir o indicar el nom del arxiu que

es crearagrave per guardar la traccedila segons lrsquoopcioacute triada

Menuacute ldquoSortirrdquo la seva funcioacute eacutes facilitar el tancament de lrsquoaplicacioacute per a

lrsquousuari

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa

Page 60: LOCALITZADOR GRÀFIC D’ADRECES IPopenaccess.uoc.edu/webapps/o2/bitstream/10609/81685/6... · Localitzador Gràfic d’Adreces IP Guillermo Luque Arenas 1 1. Introducció Els inicis

Localitzador Gragravefic drsquoAdreces IP Guillermo Luque Arenas

53

Quadre de text ldquoHost destiacuterdquo eacutes lrsquoespai on srsquoha de escriure el domini o lrsquoadreccedila

IP al qual es vol fer la traccedila i localitzar al mapa Lrsquoadreccedila IP ha de ser en format

vagravelid eacutes a dir quatre nuacutemeros decimals separats per un punt drsquoentre 0 i 255

(XXXXXXXXXXXX) Si no eacutes coneix lrsquoadreccedila IP del domini destiacute es pot escriure

el nom del domini sense les lletres www inicials per exemple yahooes

Botoacute ldquoTraccedilardquo aquest teacute la funcioacute drsquoiniciar el proceacutes una vegada srsquoha introduiumlt el

domini Si el domini introduiumlt no es vagravelid apareixeragrave un missatge drsquoerror

indicant-ho En el moment que comenci la traccedila de la ruta aquest botoacute no estaragrave

operatiu i apareixeragrave al costat un altre botoacute anomenat ldquoStoprdquo per tal de poder

detenir el proceacutes en cas de necessitat

Botoacute ldquoWHOISrdquo proporciona la informacioacute sobre el domini que srsquoestagrave fent la

traccedila que hi ha als servidors WHOIS Aquesta informacioacute es mostra en una altra

finestra que apareix quan premem el botoacute i que es pot tancar quan es desitgi Si

no srsquoha iniciat cap traccedila i estem a la pantalla inicial lrsquoaplicacioacute no retorna cap

valor

Quadre de text ldquoAdreccedila IP Puacuteblica localrdquo mostra des de lrsquoinici lrsquoadreccedila IP local

puacuteblica de lrsquoequip que executa lrsquoaplicacioacute Si es carrega una traccedila anterior feta

des drsquouna altra ubicacioacute aquest quadre mostra lrsquoadreccedila IP puacuteblica des drsquoon es

va fer aquesta traccedila

Quadre de text ldquoAdreccedila IP host destiacuterdquo es mostra lrsquoadreccedila IP del equip destiacute

aquesta es mostra tant si srsquoha ficat com a host destiacute un domini com si srsquoha ficat

una adreccedila IP

Taula de nodes la funcioacute drsquoaquesta taula es mostrar els diferents salts que es

troben durant la traccedila i mostra els equips que responen a la consulta ICMP En

el moment que aquesta taula srsquoemplena apareix un scroll al costat dret que

permet desplaccedilar la taula per consultar tots els nodes trobats

Mapa en aquest es mostren els nodes trobats i la traccedila entre ells Per tal de fer

meacutes visible el resultat el node inicial srsquoha marcat de color verd i el node final de

color vermell els nodes intermedis apareixen de color blau Al igual que

qualsevol mapa de Google aquest permet utilitzar els controls de zoom que

apareixen a la part dreta inferior per apropar o allunyar el mapa Igualment es

pot seleccionar el tipus de vista entre sategravelmiddotlit o mapa amb els botons situats a

la part superior esquerra del mapa