最基本的方法是使用 ifconfig
命令。这个命令可以显示系统中所有网卡的详细信息,包括 IP 地址。例如:
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:cb:27:e9
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fecb:27e9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1374 errors:0 dropped:0 overruns:0 frame:0
TX packets:954 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:130828 (130.8 KB) TX bytes:122724 (122.7 KB)
从输出中可以看到,eth0 接口的 IP 地址是 192.168.1.100。
除 ifconfig
,我们还可以使用 ip
命令来查看 IP 地址。这个命令是 ifconfig
的替代品,它提供更加丰富的功能。例如:
$ ip addr show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:cb:27:e9 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 85742sec preferred_lft 85742sec
inet6 fe80::20c:29ff:fecb:27e9/64 scope link
valid_lft forever preferred_lft forever
从输出中可以看到,eth0 接口的 IP 地址是 192.168.1.100。
另一种简单的方法是使用 hostname -I
命令。这个命令会打印出系统的所有 IP 地址,包括 IPv4 和 IPv6 地址。例如:
$ hostname -I
192.168.1.100 fe80::20c:29ff:fecb:27e9
从输出中可以看到,系统有两个 IP 地址:IPv4 地址 192.168.1.100 和 IPv6 地址 fe80::20c:29ff:fecb:27e9。
除使用命令行工具,我们还可以使用编程语言来获取 IP 地址信息。以 Python 为例,我们可以使用 netifaces
模块来获取 IP 地址信息。例如:
import netifaces
def get_ip_address():
interfaces = netifaces.interfaces()
for interface in interfaces:
if interface != 'lo':
addrs = netifaces.ifaddresses(interface).get(netifaces.AF_INET, [])
for addr in addrs:
if 'addr' in addr:
return addr['addr']
return None
ip_address = get_ip_address()
if ip_address:
print(f"IP address: {ip_address}")
else:
print("Failed to get IP address")
这个脚本会遍历系统中的所有网络接口,并返回第一个非 loopback 接口的 IP 地址。
我们也可以使用 Bash 脚本来获取 IP 地址信息。例如:
#!/bin/bash
# Get the first non-loopback IP address
ip_address=$(ip addr show | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -n 1)
if [ -n "$ip_address" ]; then
echo "IP address: $ip_address"
else
echo "Failed to get IP address"
fi
这个脚本使用 ip addr show
命令来获取网络接口的详细信息,使用 grep 命令来提取 IP 地址。它会打印出找到的第一个非 loopback IP 地址。
在 Linux 系统中,查看 IP 地址的方法有很多种。我们可以使用 ifconfig
、ip
或 hostname -I
命令来快速获取 IP 地址信息。对于更复杂的需求,我们还可以使用编程语言,比如 Python 和 Bash 脚本,来自定义我们的 IP 地址查看逻辑。无论选择哪种方法,掌握这些技能都将有助于我们更好地管理和配置 Linux 系统。