# IP-adres

Een IP-adres, waarin IP staat voor Internet Protocol, is een adres in een computernetwerk waarmee een netwerkinterface (network interface) van een host in het netwerk eenduidig geadresseerd kan worden binnen het TCP/IP-model, de standaard van het internet. Het concept achter TCP/IP en de daarbij behorende IP-adressen is initieel opgezet door DARPA rond 1980. De huidige standaard wordt verder ontwikkeld door de Internet Engineering Task Force (IETF).
De wereldwijde administratie van de toewijzing van publieke IP-adressen aan organisaties is in handen van IANA, waarbij er wereldwijd door vijf regionale RIR's daadwerkelijk IP-adressen worden uitgegeven.
Elke computer die is aangesloten op het internet of netwerk heeft een nummer waarmee hij zichtbaar is voor alle andere computers op het internet. Men kan dit vergelijken met telefoonnummers. Om het mogelijk te maken dat computers elkaar kunnen vinden en identificeren, hebben deze hun eigen nummer nodig. Deze nummers zijn de IP-adressen. Een IP-adres op het internet is meestal gekoppeld aan een bedrijf of instantie. Zo is te achterhalen waar bewerkingen die onder een bepaald IP-adres gedaan zijn, vandaan komen. Bij mensen die vanuit huis werken, identificeert het IP-adres hun internetprovider. Bijdragen op het internet zijn hierdoor bijna nooit werkelijk anoniem. De locatie van een internetaansluiting is in de meeste gevallen alleen te achterhalen via de internetprovider. In sommige gevallen kan de rechter de internetprovider verplichten de gegevens van de afnemer van de internetverbinding behorende bij het IP-adres te overhandigen.

## Adresruimte

Tot nu toe gebruikt men voornamelijk IP-adressen die bestaan uit 32 bits, het zogenaamde Internet Protocol versie 4-systeem (IPv4). In de praktijk blijkt dit systeem echter te weinig bruikbare adressen op te leveren. Daarom heeft men Internet Protocol versie 6 (IPv6) ontwikkeld, met IP-adressen bestaande uit 128 bits.

## IPv4

In IPv4 is een IP-adres een reeks van 32 bits. De adresruimte van IPv4 bevat daarom maximaal 2$^{32}$ = 4.294.967.296 IP-adressen. Dat is minder dan er mensen op aarde zijn. In werkelijkheid is het beschikbare aantal adressen minder, want in de praktijk worden bepaalde adressen als broadcastadres of netwerkadres gebruikt en is een deel van de adresruimte als privé-adresruimte voor bijvoorbeeld testdoeleinden gereserveerd, zoals beschreven staat in RFC 1918. Dit deel wordt niet over het internet gerouteerd. Verder zijn hele reeksen IP-adressen toegekend aan bedrijven en providers, bijvoorbeeld een reeks van 65.536 adressen, terwijl dat bedrijf niet zo veel adressen nodig heeft. Sommige organisaties hebben grotere reeksen ingeruild voor kleinere toen de IPv4-adressen opraakten.
Het is gebruikelijk een IP-adres uit IPv4 op te delen in vier groepen van acht bits en deze weer te geven in de vorm van door punten gescheiden decimale getallen, bijvoorbeeld 192.0.2.197. Dit is korter dan de 32 bits en eenvoudiger te lezen. Elk van de vier getallen ligt tussen 0 en 255, beide inbegrepen. Voor de mens zijn zulke combinaties van vier getallen echter ook nog moeilijk te onthouden. Daarom wordt het Domain Name System (DNS) gebruikt om IP-adressen in leesbare en makkelijker te onthouden namen, zoals nl.wikipedia.org, om te zetten en vice versa.
In principe bestaat een IP-adres in IPv4 uit een netwerkgedeelte, gevolgd door een hostgedeelte. Het netwerkgedeelte geeft aan welk netwerk bedoeld is en het hostgedeelte geeft de host (bv. een pc of een router) aan binnen het netwerk.
De reeks van IP-adressen binnen een subnet wordt meestal als volgt weergegeven. In een adres dat decimaal wordt aangegeven met G.H.K.L/M, waarbij G-M gehele getallen zijn, geeft het getal M aan hoeveel bits van het adres voor het netwerkgedeelte zijn (M ligt dus tussen 0 en 32); de rest van de 32 bits is voor het hostgedeelte.
Bij bijvoorbeeld 192.0.2.197/32 zijn alle bits voor het netwerkgedeelte en is er sprake van een enkele host. Indien een subnet 192.0.2.0/24 als allocatie heeft, zijn de eerste 24 bits uit het adres, dus de eerste drie door punten gescheiden decimale getallen, voor het netwerkgedeelte, en de laatste 8 bits voor de hosts binnen het subnet. Hierdoor zijn er in dit voorbeeld 2$^8$ = 256 adressen voor adressering van individuele hosts (N.B.: het eerste adres, 192.0.2.0, en het laatste, 192.0.2.255, vallen normaal gesproken af, omdat ze dan het (sub-)netwerkadres resp. het broadcastadres zijn).

### NAT

Onder andere om aan de schaarste aan adresruimte binnen IPv4 tegemoet te komen, is network address translation (NAT), ook wel IP-masquerading genoemd, ontwikkeld. Hiermee kunnen de hosts van een intranet met IP-adressen uit de privé-adresruimte van RFC 1918 worden geadresseerd, terwijl de NAT-router dit naar buiten toe presenteert als één enkel IP-adres van de routeerbare adresruimte, dus slechts één IP-adres hoeft werkelijk gerouteerd en toegekend te worden, terwijl honderden hosts hier gebruik van kunnen maken. Men kan dit vergelijken met het systeem van een interne telefooncentrale. Er is slechts één buitenlijn (één IP-adres) maar vele gebruikers die via die telefooncentrale verbonden zijn met de buitenwereld. Voor alle andere gebruikers op het internet is er maar één IP-adres zichtbaar. Een groot nadeel van NAT is dat standaard alleen uitgaande verbindingen mogelijk zijn. Het mogelijk maken van binnenkomende verbindingen vergt specifieke oplossingen, die niet altijd even goed werken.

### Speciale adressen

Speciale IP-adressen binnen IPv4 zijn onder meer:

#### 0.0.0.0

    "Deze host op dit netwerk", mag standaard niet verzonden worden, behalve als bronadres in een procedure waarbij een host het eigen IP-adres leert.

#### 127.0.0.1

    Het meest gebruikte adres voor localhost, maar andere adressen binnen 127.0.0.0/8 kunnen er ook voor gebruikt worden.

#### 10.0.0.0/8, 172.16.0.0/12 en 192.168.0.0/16

    De volgens RFC 1918 voor privé-netwerken gereserveerde reeksen van IP-adressen.

#### 192.0.2.0/24, 198.51.100.0/24 en 203.0.113.0/24

    Deze blokken zijn volgens RFC 5737 gereserveerd voor gebruik in documentatie.

## IPv6

Een structurele oplossing voor de schaarste in adresruimte van IPv4 is te vinden in de opvolger hiervan: IPv6. In IPv6 zijn er 128 bits beschikbaar voor een IP-adres, en is de theoretische bovengrens dus 2$^{128}$ ≈ 3,4 × 10$^{38}$ IP-adressen. Net als bij IPv4 geldt dat in de praktijk weer adressen gebruikt worden als netwerkadres en broadcastadres, maar evengoed is het aantal toe te kennen IP-adressen hiermee enorm groot: triljarden adressen per persoon.

## Soorten adressen

Er wordt wel onderscheid gemaakt in verschillende soorten IP-adressen:
* Dynamisch IP-adres versus statisch IP-adres. Als een netwerkinterface een statisch IP-adres heeft, dan is het toegewezen voor onbepaalde tijd; als het een dynamisch IP-adres is, dan wordt het voor een beperkte tijd toegewezen, bijvoorbeeld met het DHCP-protocol, en kan het in de loop van de tijd veranderen. Dynamische IP-adressen worden vaak voor inbelaccounts (dialups) en mobiele internetverbindingen gebruikt.
* Privé-IP-adres versus routeerbaar IP-adres. Een privé-IP-adres is een adres uit de in RFC 1918 beschreven adresruimte.
* IP-adres volgens IPv4 versus IP-adres volgens IPv6.

## IP-blokkering

Omdat IP-adressen door internetapplicaties makkelijk te raadplegen zijn (meestal wordt hier de "REMOTE_ADDR"-variabele voor gebruikt), zijn veel internetapplicaties ook in staat een IP-adres te blokkeren van de website of om permissies in te trekken voor dat IP-adres. Dit kan bijvoorbeeld gebeuren bij het spelen van een internetgame, wanneer de gebruiker valsspeelt.

## Privacy

Een IP-adres is op zichzelf geen persoonsgegeven, maar kan dat wel worden, in combinatie met andere gegevens. In dat geval is de Databeschermingsrichtlijn inzake privacy van toepassing.