跳到主要内容

编写Shell脚本获取本机的网络地址?

参考答案:

在Shell脚本中,您可以使用hostname命令与ip命令来获取本机的网络地址。以下是一个简单的示例脚本,它首先使用hostname获取主机名,然后使用ip命令获取并打印所有网络接口的地址。

请注意,此脚本适用于大多数Linux系统。然而,在某些情况下,如macOS,您可能需要使用不同的命令(如ifconfig)来获取网络接口信息。

#!/bin/bash

# 获取主机名
hostname=$(hostname)
echo "主机名: $hostname"

# 获取所有网络接口的地址
echo "网络接口地址:"
ip -4 addr show | grep -oP 'inet \K[\d.]+'

# 或者,如果您只想获取默认的IPv4地址,您可以使用以下命令:
# default_ip=$(ip -4 route show default | grep -oP 'inet \K[\d.]+')
# echo "默认IPv4地址: $default_ip"

保存上述脚本到一个文件(例如get_network_info.sh),然后给它执行权限:

chmod +x get_network_info.sh

之后,您就可以运行这个脚本来获取网络地址信息了:

./get_network_info.sh

请注意,ip命令的输出可能因系统而异,因此您可能需要调整grep命令的正则表达式以匹配您的系统输出。如果您只关心特定的网络接口(例如eth0wlan0),您也可以在ip命令中指定它。例如,要获取eth0接口的地址,您可以使用ip -4 addr show eth0