If you have been on the internet long enough, there is a good chance that you might have come across IP addresses in one form or another.
Every device has an IP address and needs it to be able to communicate with other devices over a network, including the internet.
What if we told you that you are here because of an IP address? Even though you may not have typed one, you are reading this blog post thanks to one.
IP addresses are everywhere and nothing on the internet would function without them.
That’s what this post is about.
By the end of this article, you will know everything you need to know about IP addresses.
We’ll cover what IP addresses are, how they work, how to get one, how DNS and ARP works and a lot more.
We’ll also cover how IP addresses are relevant to websites.
If you were looking for a grounding in IP addressing, you’re in the right place!
So let’s start at the very beginning. What is an IP address?
An IP address is a numerical address given to devices on the internet or local network. They enable different devices within a network to identify and communicate with one another.
Think of them as your phone number and you don’t be far wrong.
Your friends need your number so they can call or WhatsApp you. It’s a similar thing for networks.
Computers and other devices use IP addresses in the same way we use phone numbers to communicate with each other.
Any networked device needs an IP address to be able to send and receive traffic.
Every phone, computer, laptop, tablet, internet-enabled refrigerator and any other device requires one.
That’s why they are so important.
IP addresses are usually strings of numbers, broken up into 4 lots of 3, like 126.96.36.199. This is a Google IP address.
We say ‘usually strings of numbers’ because addressing is changing. We’ll get to that later.
The full IP address range goes from 0.0.0.0 to 255.255.255.255.
It ends at 255 because that’s the maximum number in an octet, which is how 32-bit addressing works.
As there are four sets of numbers, which are octets (8 bits of information), 4 x 8 = 32.
Don’t worry about that part, we just include that for completeness.
Learning about IP addresses is fascinating, but how does this relate to running a WordPress website?
There are two situations where knowing IP addresses can be useful, analytics and defense.
Without them, you wouldn’t know where people were coming from and wouldn’t be able to identify their location or your key markets.
The other way a website owner utilizes IP addresses is if you use a firewall.
Many WordPress firewalls include blacklists and whitelists. Both depend on IP addresses to work.
A blacklist is a list of IP addresses that are blocked from accessing your website. A whitelist is a list of trusted IP addresses.
A WordPress firewall tracks all IP addresses that try to access your website. If it identifies suspicious activity, it will block that IP address from accessing your site.
Conversely, you can manually add your own IP address to the whitelist to ensure you are always able to access it.
Two simple, but fundamental ways IP addresses are used within the average WordPress website!
An IP address is split into two halves. The first half is the network ID and the second half is the host ID.
So, in our Google example above, the 172.217 part is the network ID and the 14.206 part is the host ID.
The network ID identifies the network the IP address is assigned to. For example, your ISP, your company or your home network.
The host ID identifies the device. It’s a pool of numbers that can be allocated to devices within that network. For example, your laptop, phone, PS5 or Xbox.
There are two main types of IP addresses that we think you should know, dynamic and static.
A dynamic IP address is a type of IP address that can change frequently.
Dynamic IP addresses are provided by your ISP or by your router. ISPs buy IP addresses in bulk and distribute them automatically to customers.
As ISPs typically have thousands of customers connecting and disconnecting all the time, they create IP address pools.
All IP addresses owned by the ISP are put into a pool and a customer router will request one periodically or when it reboots.
The ISP router will allocate a dynamic IP address and map it so your router can connect to the internet.
The address will then refresh periodically depending on the time set by your ISP.
The idea is to ensure all IP addresses owned by the ISP are utilized and that no customer will ever be left without connectivity.
A static IP address is the type of IP address that remains the same over a period of time, or static.
These can be assigned by ISPs or your own router. Once assigned, your router keeps the static IP address for the entire period you’re a customer.
Static IP addresses are necessary if you manage your own web server instead of using a hosting company.
In such a case, a static IP address prevents DNS confusion.
We’ll get to DNS later.
As well as different types, there are two versions of IP address – IPv4 and IPv6.
IPv4 stands for Internet Protocol Version 4. This is the most popular type of IP address present today and has been around since the beginning.
The IPv4 address is represented by a dot-decimal notation. It means that the address is 4 parts separated by a period.
The address we used as an example above is an IPv4 address – 188.8.131.52.
IPv4 uses a 32-bit address space. This means that there can be ‘only’ 232(4,294,967,296) unique addresses.
That’s 4.3 billion, give or take a few.
That number might seem huge, but with the rapid expansion of the internet and connected devices, we are running out of addresses.
As more and more devices come online, the 4.3 billion addresses allowed by IPv4 are rapidly dwindling.
Which has led to the development of IPv6.
IPv6 stands for Internet Protocol Version 6.
In IPv6, we use a 128-bit address space, which means we can have 2128 (approximately 3.403×1038) IP addresses.
That’s 340 trillion trillion trillion IP addresses!
As opposed to the numerical digits in IPv4, in IPv6, we use alphanumeric, both letters and numbers, separated by colons instead of periods.
A good example is a Google IPv6 address – 2607:f8b0:4003:c00::6a.
The new alphanumeric system allows for many times more IP addresses in the foreseeable future.
As the IoT, Internet of Things becomes more common, we’re going to need all those addresses!
So a quick summary of IP addresses:
So you have an idea of what IP addresses are, but how do you get one?
There are two main types of IP address, network level addresses and local addresses.
So, to break it down:
For example, your ISP assigns the IP address 184.108.40.206 to your router. This allows your router to use the ISP network to access the internet.
In turn, your router could assign your desktop computer an IP address of 192.168.222.111.
The 192.168… address is a common internal network address used across the world.
If, for example, you have an Xbox or PS5, your router could assign it an IP address of 192.168.222.112 and any other devices .113, .114 and so on.
Internal network addresses are controlled by your router and the host part, the second half, can be any set of 3 numbers you like.
So how does a device with an IP address of 192.168.222.111 use the internet if your ISP thinks you have an address of 220.127.116.11?
It uses network address translation, NAT.
Network Address Translation, or NAT, is a feature of most modern routers. It enables the router to keep the IP address provided by your ISP separate from the internal one the router provides to your network.
It uses a simple table to map what IP address is used by what device on your network, called an ARP table or ARP cache.
We’ll get to ARP in a minute.
NAT works like this:
This happens for every packet of data you send over the internet!
Now let’s explain ARP tables or the ARP cache.
Most routers will have an ARP cache or ARP table. Computers use ARP caches too, but we’re more concerned with routers right now.
The ARP cache is a database that maps IP addresses to MAC addresses and then to router ports.
What, what? MAC address?
IP addresses are not unique. Every router in the world could assign the same local network IP address to a computer, which could be very confusing!
IP addresses can also be dynamic, meaning they can be changed at any time, for any reason.
The Internet Protocol overcomes that by using MAC addresses for routing traffic.
A MAC address, Media Access Control Address, is a truly unique identifier.
A MAC address looks like this – 2C:F0:5D:98:45:0C. Like the one bordered in red in the image below.
Every single network card or chip (for phones and tablets) in the world has a completely unique MAC address. It’s also called a ‘burned in’ address as it is programmed at the factory and cannot be changed.
A router uses ARP (Address Resolution Protocol) to detect the MAC address of every network card or chip connected to and creates a database called the ARP table or cache.
That database will map a particular MAC address to an IP address so it knows where to send traffic.
If the device uses a wired connection, the router will also record the port number it is connected to.
A port is the physical Ethernet port on the router. If you check yours, you’ll see they are all numbered. This is the port number.
Routers use port numbers to help send traffic to the right device without sending it to every other device too.
An ARP cache would look a little something like this:
‘Desktop0 = 2C:F0:5D:98:45:0C = Port0 = 192.168.222.111.
It doesn’t technically look like that, but you get the idea.
The router maintains the table so it knows any network traffic from 192.168.222.111 comes from the device that has a network device with a MAC of 00:00:5e:00:53:af.
The router also knows any internet traffic destined for Desktop0 should be sent only through port0 rather than anywhere else.
Still with us?
Here’s a breakdown of how it all works:
ARP caching is an IPv4 function. When IPv6 finally takes over, it will use NDP, Neighbor Discovery Protocol. It works in much the same way though.
So that’s all the theory, how does it all work in real life?
Let’s use an example of how a router learns what’s on its network:
Yes, it is kind of complicated but most of this happens behind the scenes. Your router and ISP will take care of most of these tasks without you ever knowing about it.
Here’s quick summary of how IP addresses are assigned:
As you now know, devices use MAC addresses and IP addresses to communicate with each other.
So why don’t we type IP addresses into our web browser to visit a website?
You could if you wanted to, but can you imagine remembering dozens of IP addresses just to visit your favorite sites?
We can’t either, which is why DNS was invented.
Domain names were introduced to be memorable. They could be bought and sold, branded and increasingly complicated domain names invented.
But at the end of the day, servers use IP addresses to communicate.
So how does your browser know that typing www.google.com into the URL bar means it needs to go to the web server at 18.104.22.168?
This linking is done through the Domain Name System (DNS). DNS is like an address book for domain names.
Think of it as a huge ARP cache containing millions of domains and their IP addresses.
For example, a website at www.amazingwebsitename.com could have a web server IP address of 62.62.621.621
So the DNS record could look like this:
www.amazingwebsitename.com = 62.62.621.621
It won’t look exactly like this, but that’s how it works.
There are two types of DNS server, authoritative DNS and recursive DNS.
Authoritative DNS servers are central servers owned by large internet companies like Google, Cloudflare and others.
They are substantial servers that maintain accurate DNS records for millions of websites.
A recursive DNS server is usually owned by your ISP. It will maintain thousands, perhaps millions of records of its own.
It will query the authoritative DNS server if it cannot find what it’s looking for.
When you try to access a website, you type the domain name in the URL bar.
Your router queriesDNS to look up the IP address for the web server that hosts the website.
The website loads and everyone is happy.
If your ISP’s DNS doesn’t have the record, it will query its closest authoritative DNS server for it.
If that server has it, your ISP server tells your browser and keeps its own copy of that record to save effort next time.
Usually, there are only one or two DNS queries, but occasionally, the closest authoritative server will need to consult another authoritative server.
This would, in theory, continue until one of them could find the entry!
All this happens in seconds and would go unnoticed by the majority of web users.
As you can see, there are two different queries happening here.
One, the DNS lookup where your router tries to find the IP address of the domain name you typed.
Two, the IP address lookup where your router via your ISP and core routers, try to identify where in the world the web server for that domain is located.
All this happens within a second or two, despite the distances often being thousands of miles.
Here’s a quick summary of IP addressing and web browsing:
IP addressing is a huge, and often complicated, subject. Yet It’s crucial to how we use the internet and manage websites.
While you don’t need to understand how IP addresses work, the more informed you are, the more able you are to troubleshoot problems and amaze your friends with your knowledge!
Plus, if you’re managing websites, it’s always useful to know how visitors actually arrive on your site, isn’t it?
Did we cover IP addressing in enough depth? Do you have any questions? Share your thoughts in the comments below!