32 bits adresser, delt opp i oktetter (4x8)
ip = "192.168.1.1"
octet_bin = [f"{int(x):>08b}" for x in ip.split(".")]
print(ip)
print(octet_bin)
print(*octet_bin)
192.168.1.1 ['11000000', '10101000', '00000001', '00000001'] 11000000 10101000 00000001 00000001
Class A: 10.0.0.0 to 10.255.255.255
Class B: 172.16.0.0 to 172.31.255.255
Class C: 192.168.0.0 to 192.168.255.255
IP-adressen er dels en adresse til nettverket vi tilhører, og dels en adresse til vår egen PC. Nettverksmaske - bestemmer hvor mange bits som brukes til å sette nettverksadressen.
Classful networks (Class A, B, C) - fra 1981: https://en.wikipedia.org/wiki/Classful_network
print(f"Antall tilgjengelige verdier med 8 bits: {2**8}\n")
masks = [
'255.255.255.255',
'255.255.255.254',
'255.255.255.252',
'255.255.255.248',
'255.255.255.240',
'255.255.255.224',
'255.255.255.192',
'255.255.255.128',
'255.255.255.0',
'255.255.254.0',
'255.255.252.0'
,
]
for s in masks:
s_bin = '.'.join([bin(int(x)+256)[3:] for x in s.split('.')])
s_bin_zeroes = s_bin.count('0')
cidr = s_bin.count('1')
ip_address_count = int(2)**s_bin_zeroes
print(f"Maske: {s:<16} {s_bin} Antall '0'-er: {s_bin_zeroes:>2} Antall '1'-ere: {cidr:>2} Antall tilgjengelige adresser: {ip_address_count:>4}")
Antall tilgjengelige verdier med 8 bits: 256 Maske: 255.255.255.255 11111111.11111111.11111111.11111111 Antall '0'-er: 0 Antall '1'-ere: 32 Antall tilgjengelige adresser: 1 Maske: 255.255.255.254 11111111.11111111.11111111.11111110 Antall '0'-er: 1 Antall '1'-ere: 31 Antall tilgjengelige adresser: 2 Maske: 255.255.255.252 11111111.11111111.11111111.11111100 Antall '0'-er: 2 Antall '1'-ere: 30 Antall tilgjengelige adresser: 4 Maske: 255.255.255.248 11111111.11111111.11111111.11111000 Antall '0'-er: 3 Antall '1'-ere: 29 Antall tilgjengelige adresser: 8 Maske: 255.255.255.240 11111111.11111111.11111111.11110000 Antall '0'-er: 4 Antall '1'-ere: 28 Antall tilgjengelige adresser: 16 Maske: 255.255.255.224 11111111.11111111.11111111.11100000 Antall '0'-er: 5 Antall '1'-ere: 27 Antall tilgjengelige adresser: 32 Maske: 255.255.255.192 11111111.11111111.11111111.11000000 Antall '0'-er: 6 Antall '1'-ere: 26 Antall tilgjengelige adresser: 64 Maske: 255.255.255.128 11111111.11111111.11111111.10000000 Antall '0'-er: 7 Antall '1'-ere: 25 Antall tilgjengelige adresser: 128 Maske: 255.255.255.0 11111111.11111111.11111111.00000000 Antall '0'-er: 8 Antall '1'-ere: 24 Antall tilgjengelige adresser: 256 Maske: 255.255.254.0 11111111.11111111.11111110.00000000 Antall '0'-er: 9 Antall '1'-ere: 23 Antall tilgjengelige adresser: 512 Maske: 255.255.252.0 11111111.11111111.11111100.00000000 Antall '0'-er: 10 Antall '1'-ere: 22 Antall tilgjengelige adresser: 1024
Eksempel på oppsett for hjemmerouter:
Ip-adresse for LAN: 192.168.8.1
Nettverksmaske: 255.255.255.0
Gir adresse-serien: 192.168.8.2-192.168.8.254
Alternativ til Classful Networks: Classless Inter-Domain Routing (CIDR) - fra 1993: https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
CIDR-verdien tilsvarer antallet 1'ere i tabellen ovenfor.
Eksempel med CIDR-notasjon for hjemmerouter-eksemplet:
192.168.8.1/24
Oversetting mellom private nettverksadresser og en offentlig IP-adresse skjer via en NAT-tjeneste i routeren.
src=192.168.8.100 # Min PC
dst=52.109.88.196 # Microsoft
sport=50695 # source port
dport=443 # destination port
src=52.109.88.196 # Microsoft
dst=192.36.105.199 # Hjemmerouter, offentlig adresse (eksempel)
sport=443 # source port
dport=50695 # destination port
128-bits adresser, delt opp i 8 16-bits seksjoner, skilt med kolon, og oppgitt i heksadesimale verdier (0-f)
print(f"Antall IP v4-adresser: {2**32}")
print(f"Antall IP v6-adresser: {2**128}")
Antall IP v4-adresser: 4294967296 Antall IP v6-adresser: 340282366920938463463374607431768211456
nslookup ntnu.no
2001:700:300:6::102
samme som:
2001:0700:0300:0006:0000:0000:0000:0102
Adressetyper det er verd å merke seg:
localhost ::1/128
link local address fe80::/10 f.eks. fe80::918f:2474:d730:5814 - kan bare brukes i det lokale nettverket
IPv6 Address
Eksempel fra egen PC
Windows: netsh int ipv6 show address
Interface 14: Ethernet 2
Addr Type DAD State Valid Life Pref. Life Address
--------- ----------- ---------- ---------- ------------------------
Public Preferred 23h52m31s 3h52m31s 2a23:799:1716:7a26:918f:2474:d730:5814
Temporary Preferred 23h52m31s 3h52m31s 2a23:799:1716:7a26:f580:c593:f238:7b1b
Other Preferred infinite infinite fe80::918f:2474:d730:5814%14
Merk Public, som er offentlig IP-adresse uten NAT