手机版 收藏 导航

Linux 下查看 IP 地址的脚本编程技巧有哪些_Linux 下如何查看本机 IP 地址的详细信息

原创   www.link114.cn   2024-12-30 10:54:06

Linux 下查看 IP 地址的脚本编程技巧有哪些_Linux 下如何查看本机 IP 地址的详细信息

最基本的方法是使用 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 地址的方法有很多种。我们可以使用 ifconfigiphostname -I 命令来快速获取 IP 地址信息。对于更复杂的需求,我们还可以使用编程语言,比如 Python 和 Bash 脚本,来自定义我们的 IP 地址查看逻辑。无论选择哪种方法,掌握这些技能都将有助于我们更好地管理和配置 Linux 系统。