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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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