An IP (Internal Protocol) address is a unique identifier that identifies a device on the internet connected to the TCP/IP protocol and enables communication over it. One of the most common and popular examples of a network built on IP addresses is World Wide Web and Internet.

The address of each device in an IP subnet (a kind of subset of complete IP range) should always be unique means no two devices on the same subnet can have the same IP address, otherwise, it will cause an IP address conflict.

For IPv4, its format can be 4 octets like x.x.x.x where each octet is 8 bits or 0 to 255 in decimal. Eg. 201.112.192.230. IPv6 addresses support a much larger range and are formatted like y:y:y:y:y:y:y:y where each y is a segment that can range between 0 and FFFF in hexadecimal like 2001:0db8:0001:0000:0000:0ab9:C0A8:0102.

An IP address helps in location addressing of the connected device and for network interface identification. Also, we need to remember that each connected device can have two types of IP addresses:

  • A private or Internal IP address
  • A public or External IP address

Internal IP addresses are for messaging and connectivity within the internal network. Devices with these addresses are not reachable globally and are accessible within the LAN only. Additionally, the same internal IP can be used across two different network subnets, so they are not necessarily unique identifiers.

Whereas external IP addresses are globally accessible on the internet. Since addresses are unique across the Internet, it also determines the location of the devices from where it is connecting to. Because IANA (Internet Assigned Number Authority) assigns a unique range of addresses across different countries. 

Windows

Using Command Prompt

When you run the command ipconfig on Windows’ Command Prompt, it will list down all the network adapters found on your Windows system. There could be multiple IP addresses in that list based on your connectivity like ethernet, Wi-Fi, etc.

Here’s an example:

Network and Sharing Center

Another method by which you can find your system’s/network adapter’s IP address is by opening Network and Sharing Center. For this, open the Control Panel and go to Network and Internet -> Network and Sharing Center -> Connections: <Wi-Fi>/<Ethernet> -> Details.

Here’s what it looks like:

Settings App

Open Settings app from Start menu. Then go to Network & Internet -> Select your connection type (here it is Wi-Fi) -> Hardware Properties. Below is a screenshot showing network details from Settings app:

Linux

Linux offers a range of options to check your system’s IP address. Besides GUI network manager based on the Linux distribution, there is a set of common CLI commands that are mostly supported across different distributions by default. So, we’ll be covering such commands.

ip Command

ip command has a lot of options. To list all network interfaces, use ip a command or specify the name of the network interface as shown below.

$ ip addr show eth0
6: eth0: mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:8c:b4:c4 brd ff:ff:ff:ff:ff:ff
inet 172.23.120.4/20 brd 172.23.127.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe8c:b4c4/64 scope link
valid_lft forever preferred_lft forever
$

hostname Command

hostname command with -I flag can list down all IPs attached to your different network interfaces.

$ hostname -I
172.23.120.4 10.42.0.0 10.42.0.1
$

ifconfig Command

Like ip command, ifconfig used to be the default command for viewing/modifying network parameters in a Linux system though it is still supported by a lot of distributions. You can use ifconfig -a to view all network adapters and their IPs or to specify a specific network interface with ifconfig use:

$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.23.120.4  netmask 255.255.240.0  broadcast 172.23.127.255
        inet6 fe80::215:5dff:fe8c:b4c4  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:8c:b4:c4  txqueuelen 1000  (Ethernet)
        RX packets 1339936  bytes 1152733066 (1.1 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 393472  bytes 333379281 (333.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
$

All the above methods will show you the internal IP of your network adapter. To view the external or public IP address from the Linux terminal, you can try any of the below common tools (do note that all these commands communicate with an external service to fetch your public IP):

$ curl ifconfig.me
$ curl ident.me
$ curl ipinfo.io/ip
$ dig +short myip.opendns.com @resolver1.opendns.com
$ host myip.opendns.com resolver1.opendns.com

Mac

On Mac, you can either follow GUI or terminal method to get your IP address.

GUI Method

  • Open System Preferences from Apple menu.
  • Click View in top menu and select Network.
  • Choose the right network connection from left menu.
  • On the right, you’ll be able to see the IP address of your Mac.

CLI Method

  • Open the terminal on your Mac.
  • Now, for ethernet connection you can use ipconfig getifaddr en1 command to get the IP address.

Ex:

chandan@Chandans-iMac ~ % ipconfig getifaddr en1
192.168.1.117
chandan@Chandans-iMac ~ % 

IP of Websites

Besides your system’s private and public IPs, there’s public IP of websites on the Internet that you communicate over web browsers or other applications. Though you use DNS names to open a website or talk to it, computers use IP addresses in the backend to make this communication work.

We can query the IP of a website using some commonly available utilities on any system like ping, nslookup and dig. Though ping is not something exclusively used to fetch IP, it does fetch the IP in the process and it can be viewed in the output. Further, it’s a common utility available across the different OS. Here are all these commands in action:

ping

$ ping -c4 wikipedia.com
PING wikipedia.com (91.198.174.194) 56(84) bytes of data.
64 bytes from ncredir-lb.esams.wikimedia.org (91.198.174.194): icmp_seq=1 ttl=57 time=7.53 ms
64 bytes from ncredir-lb.esams.wikimedia.org (91.198.174.194): icmp_seq=2 ttl=57 time=7.58 ms
64 bytes from ncredir-lb.esams.wikimedia.org (91.198.174.194): icmp_seq=3 ttl=57 time=7.56 ms
64 bytes from ncredir-lb.esams.wikimedia.org (91.198.174.194): icmp_seq=4 ttl=57 time=7.59 ms

--- wikipedia.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 7.532/7.564/7.591/0.022 ms
$

You can explore more ping command examples.

nslookup

$ nslookup wikipedia.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   wikipedia.com
Address: 91.198.174.194
Name:   wikipedia.com
Address: 2620:0:862:ed1a::3

$

dig

$ dig +short wikipedia.com
91.198.174.194
$

If you don’t have a terminal handy or in case, you’re not comfortable using it, fear not. There are numerous whois tools available that can get you the IP details of a website right from the browser.

One such great whois utility can be accessed from Geekflare Tools.

You can simply enter the domain name of the website you are looking to find the IP and click on Find Host button and the tool will show you the website’s IP as well as some other cool information like location and hosting details about it.

Conclusion

IP address is an intrinsic part of how the Internet works today. In this article, we’ve covered how private and public IP is different and how we can identify the IP address assigned to a network interface covering Windows, Linux, and Mac systems.