How To Find Ip On Linux

How To Find Ip On Linux

Reading time1 min
#Linux#Networking#IP#LinuxNetworking#IPDiscovery#NetworkAutomation

Mastering IP Address Discovery on Linux: Beyond the Basics

Understanding how to find an IP address on Linux is fundamental for network troubleshooting, security auditing, and system configuration. It empowers users to manage their environments with precision and confidence.

Most guides stop at ifconfig or ip addr, but true Linux pros leverage lesser-known commands and scripts to instantly extract detailed IP info—even in complex networking scenarios. Today, we're going to elevate your Linux networking toolkit by diving deeper into IP address discovery.


Why Go Beyond ifconfig and ip addr?

ifconfig has been the traditional go-to tool for decades, and ip addr (part of the iproute2 suite) is its modern replacement. They both work well for basic setups, but real-world networks often involve multiple interfaces, containers, VPNs, tunnels, and more. Knowing alternative methods helps you:

  • Automate IP discovery in scripts
  • Quickly troubleshoot when traditional commands fail or yield cluttered output
  • Gather context such as routing, ARP tables, and neighboring devices
  • Parse info in ways suitable for complex network setups

Quick Refresher: Basic IP Address Discovery

Using ip (recommended)

ip addr show

Or more succinctly:

ip a

You'll get output like:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::... scope link

Using ifconfig (deprecated on many systems)

ifconfig

Beyond the Basics: Advanced IP Address Discovery Techniques

1. Extract the Primary IPv4 Address Quickly

In many automation scripts, you only want the main IP address for a given interface. Here’s how to extract it:

ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'

This command filters just the IPv4 address of eth0.

2. Find All Active IP Addresses on All Interfaces

ip -o -4 addr list | awk '{print $2 ": " $4}'

Sample output:

lo: 127.0.0.1/8
eth0: 192.168.1.100/24
wlan0: 10.0.0.15/24

The -o flag outputs one record per line for easier parsing.

3. Get Your Public IP Address From the Terminal

Sometimes, you want to know your external IP, especially behind NAT or on a home network.

You can query an external service directly:

curl -s https://ipinfo.io/ip

Or:

dig +short myip.opendns.com @resolver1.opendns.com

Note: These commands require internet access.

4. Discover IP Addresses in Complex Environments — Virtual Interfaces and Containers

Tools like Docker create virtual bridges and interfaces that traditional commands may not clearly show.

Use this to get IPs of containers or virtual networks:

ip -br addr show

Sample abbreviated output:

lo               UNKNOWN        127.0.0.1/8 ::1/128
eth0             UP            192.168.1.100/24 fe80::1/64
docker0          DOWN          172.17.0.1/16 
veth0            UP            172.18.0.2/16

The -br (brief) option helps you quickly scan dozens of interfaces.


Bonus: A Simple Bash Script to List IPv4 and IPv6 Addresses Nicely

If you frequently need to check IPs, save this script as list_ips.sh:

#!/bin/bash

echo "Listing all IP addresses on this system:"
echo

for iface in $(ip -o link show | awk -F': ' '{print $2}'); do
    echo "Interface: $iface"
    ip -4 addr show $iface | grep -oP '(?<=inet\s)\d+(\.\d+){3}/\d+' | while read -r ip4; do
        echo "  IPv4: $ip4"
    done
    ip -6 addr show $iface | grep -oP '(?<=inet6\s)[\da-f:]+/\d+' | while read -r ip6; do
        echo "  IPv6: $ip6"
    done
    echo
done

Make it executable:

chmod +x list_ips.sh

Run it:

./list_ips.sh

Summary

Knowing how to find IP addresses on Linux is a must-have skill. While ifconfig and ip addr get you started, mastering advanced commands and techniques drastically improves your ability to manage, troubleshoot, and secure complex systems. Use the commands and script above to build confidence, automate repetitive tasks, and keep control of your networking environment.


If you found this helpful, try combining these commands in your own scripts or even use monitoring tools to constantly track IP changes in real time — your Linux networking mastery is just getting started!