IP (Internet Protocol) adressen worden aan apparaten gegeven om deze op een netwerk te herkennen (te identificeren). Publieke IP adressen worden door uw ISP (Internet Service Provider) uitgedeeld om uw router op het internet te herkennen (te identificeren). Uw router verzorgt dus de verbinding van al uw toestellen in uw thuisnetwerk met het internet. IP adressen spelen dus zowel in uw thuisnetwerk als op het internet een grote rol bij het identificeren van computerapparaten. IP adressen zijn voor mensen van vlees en bloed echter moeilijk te onthouden, wij onthouden beter namen. Zo zetten DNS (Domain Name System) servers namen om in IP adressen. Je kunt DNS dan ook eenvoudig vergelijken met een telefoonboek voor IP adressen.
In een thuisnetwerk is elke computer met een uniek IP adres toegankelijk. Dit IP adres wordt door uw router bepaald en is niet constant, het wordt regelmatig verandert. In scripts kan je met enkele eenvoudige opdrachten dit IP adres achterhalen.
Met de volgende opdracht geef je de netwerk configuratie van uw computer weer:
dany@main:~> ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: p3p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 14:b3:1f:12:5a:8b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.4/24 brd 192.168.1.255 scope global p3p1
valid_lft forever preferred_lft forever
inet6 fe80::16b3:1fff:fe12:5a8b/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 7c:67:a2:c1:f8:f4 brd ff:ff:ff:ff:ff:ff
Daarbij is lo (loopback) de netwerkverbinding voor netwerkverkeer binnen uw computer, bijvoorbeeld tussen programma's op uw computer. p3p1 is op mijn computer de netwerkverbinding via de netwerkkabel, deze krijgt dikwijls de naam eth0. wlan0 is de netwerkverbinding via WiFi (draadloos). Daaruit kan je het IP adres van de p3p1 netwerkverbinding filteren met de opdracht:
dany@main:~> ip addr show p3p1 | grep 'inet ' | awk '{print $2}' | cut -f1 -d'/'
192.168.1.4
Het internet IP adres van uw router vraag je best aan een computer op het internet. Computers op het internet sturen immers gevraagde informatie eerst naar uw router die het dan doorstuurt naar de computer op uw thuisnetwerk. Verschillende webpagina zijn dan ook gespecialiseerd in het opzoeken en doorgeven van uw router IP adres op het internet. We beginnen met ipconfig.me:
dany@main:~> curl ifconfig.me/ip
91.182.87.109
Mocht deze dienst niet bereikbaar zijn, probeer dan ipecho.net:
dany@main:~> wget -qO- http://ipecho.net/plain ; echo
91.182.87.109
Of whatismyipaddress.com:
dany@main:~> wget -qO- bot.whatismyipaddress.com ; echo
91.182.87.109
M.a.w. hoe gebruik ik DNS, het internet "telefoonboek" om het IP adres van een apparaat op een netwerk te achterhalen. Met de dig (domain information groper) opdracht kan je aan DNS naamservers vragen stellen. Je kunt ermee aan DNS naamservers dus vragen informatie op te zoeken en deze door te sturen. Veel DNS beheerders gebruiken dig om DNS problemen op te sporen:
dany@main:~> dig pindanet.be
; <<>> DiG 9.9.9-P1 <<>> pindanet.be
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38814
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;pindanet.be. IN A
;; ANSWER SECTION:
pindanet.be. 3600 IN A 46.30.213.63
;; Query time: 82 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sat Oct 21 11:36:42 CEST 2017
;; MSG SIZE rcvd: 56
Om uit deze informatie het IP adres te filteren, gebruik je de volgende opdracht:
dany@main:~> dig pindanet.be +noall +answer | tail -1 | awk '{print $5}'
46.30.213.63
De host opdracht is eenvoudiger en wordt hoofdzakelijk gebruikt om namen naar IP adressen om te zetten (en omgekeerd):
dany@main:~> host pindanet.be
pindanet.be has address 46.30.213.63
pindanet.be mail is handled by 10 mxcluster2.one.com.
pindanet.be mail is handled by 10 mxcluster1.one.com.
Het IP adres filter je eruit met:
dany@main:~> host pindanet.be | awk '{print $4}' | head -1
46.30.213.63
Met de nslookup opdracht bevraag je Internet DNS servers. Dit kan op een interactieve of niet interactieve manier. De niet interactieve methode toont enkel de gevraagde informatie van de netwerkcomputer (host):
dany@main:~> nslookup pindanet.be
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: pindanet.be
Address: 46.30.213.63
Daaruit filter je het IP adres:
dany@main:~> nslookup pindanet.be | grep Address | awk '{print $2}' | sed '1d'
46.30.213.63
De ping opdracht gebruikt het ICMP protocol en stuurt een ECHO_REQUEST naar een netwerkcomputer om een ICMP ECHO_RESPONSE pakket terug te krijgen. Een ECHO_RESPONSE pakket bevat het IP adres van de netwerkcomputer aangevuld met specifieke ICMP gegevens:
dany@main:~> ping pindanet.be -c 4
PING pindanet.be (46.30.213.63) 56(84) bytes of data.
64 bytes from webcluster-ssl2.webpod1-cph3.one.com (46.30.213.63): icmp_seq=1 ttl=53 time=59.9 ms
64 bytes from webcluster-ssl2.webpod1-cph3.one.com (46.30.213.63): icmp_seq=2 ttl=53 time=61.4 ms
64 bytes from webcluster-ssl2.webpod1-cph3.one.com (46.30.213.63): icmp_seq=3 ttl=53 time=59.9 ms
64 bytes from webcluster-ssl2.webpod1-cph3.one.com (46.30.213.63): icmp_seq=4 ttl=53 time=66.7 ms
--- pindanet.be ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 59.911/62.007/66.777/2.835 ms
En terug filteren:
dany@main:~> ping pindanet.be -c 1 | head -1 | awk -F "(" '{print $2}' | awk -F ")" '{print $1}'
46.30.213.63