linux如何获取ip
- Linux
- 2025-08-09
- 4
ip addr
或
ifconfig
Linux系统中,获取IP地址是一个常见的任务,无论是为了网络配置、故障排除还是其他目的,以下是几种在Linux中获取IP地址的方法,包括命令行工具和图形界面方法。
使用 ifconfig
命令
ifconfig
是一个传统的网络配置命令,虽然在一些现代Linux发行版中已经被弃用,但在许多系统上仍然可用。
示例命令:
ifconfig
输出示例:
eth0 Link encap:Ethernet HWaddr 00:0c:29:68:af:cd inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe68:afcd/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2395677 errors:0 dropped:0 overruns:0 frame:0 TX packets:1435678 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:143567845 (143.5 MB) TX bytes:239567745 (239.5 MB)
在这个输出中,inet addr:192.168.1.100
就是IPv4地址。
使用 ip
命令
ip
命令是 ifconfig
的现代替代品,功能更强大且更灵活。
示例命令:
ip addr show
输出示例:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:68:af:cd brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe68:afcd/64 scope link valid_lft forever preferred_lft forever
在这个输出中,inet 192.168.1.100/24
就是IPv4地址。
使用 hostname
命令
hostname
命令可以显示系统的主机名和IP地址。
示例命令:
hostname -I
输出示例:
168.1.100
这个命令直接返回IP地址,没有多余的信息。
使用 nmcli
命令
nmcli
是NetworkManager的命令行工具,用于管理网络连接。
示例命令:
nmcli device show | grep 'IP4.ADDRESS'
输出示例:
IP4.ADDRESS[1]: 192.168.1.100
这个命令会显示所有网络设备的IPv4地址。
使用 curl
或 wget
命令
如果你需要从外部获取IP地址(即公网IP),可以使用 curl
或 wget
命令。
示例命令:
curl ifconfig.me
或者:
wget -qOifconfig.me
输出示例:
51.100.123
这个命令会返回你的公网IP地址。
使用 dig
命令
dig
命令可以用来查询DNS记录,包括反向DNS查找,从而获取IP地址。
示例命令:
dig +short myip.opendns.com @resolver1.opendns.com
输出示例:
51.100.123
这个命令会返回你的公网IP地址。
使用图形界面工具
如果你使用的是带有图形界面的Linux发行版,可以通过网络设置工具查看IP地址。
步骤:
- 打开“设置”或“系统设置”。
- 进入“网络”或“网络连接”部分。
- 选择当前使用的网络接口(如
eth0
或wlan0
)。 - 查看详细信息,通常会显示IP地址。
使用脚本自动获取IP地址
你可以编写一个简单的Shell脚本来自动获取并显示IP地址。
示例脚本:
#!/bin/bash # Get IP address of all interfaces echo "IP Addresses:" ip addr show | grep 'inet ' | awk '{print $2}' | cut -d/ -f1
使用方法:
- 将上述脚本保存为
get_ip.sh
。 - 赋予执行权限:
chmod +x get_ip.sh
。 - 运行脚本:
./get_ip.sh
。
使用 ipcalc
工具
ipcalc
是一个用于计算和显示IP地址信息的工具,可以帮助你更好地理解IP地址和子网掩码的关系。
安装 ipcalc
:
sudo apt-get install ipcalc # Debian/Ubuntu sudo yum install ipcalc # CentOS/RHEL
示例命令:
ipcalc 192.168.1.100/24
输出示例:
Address: 192.168.1.100 11000000.10101000.00000001.01100100 Netmask: 255.255.255.0 = /24 11111111.11111111.11111111.00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000.11111111 => Network: 192.168.1.0/24 11000000.10101000.00000001.00000000 Broadcast: 192.168.1.255 11000000.10101000.00000001.11111111 HostMin: 192.168.1.1 11000000.10101000.00000001.00000001 HostMax: 192.168.1.254 11000000.10101000.00000001.11111110 Hosts/Net: 254 Class C, Private Internet
使用 arp
命令
arp
命令可以显示ARP缓存表,其中包含本地网络中设备的IP地址和MAC地址。
示例命令:
arp -a
输出示例:
? (192.168.1.1) at 00:16:3e:48:3a:ca [ether] on eth0 ? (192.168.1.100) at 00:0c:29:68:af:cd [ether] on eth0
在这个输出中,168.1.100
就是本地主机的IP地址。
在Linux系统中,获取IP地址的方法多种多样,从简单的命令行工具到图形界面工具,再到脚本和第三方工具,都可以满足不同的需求,以下是一些常用方法的归纳:
方法 | 命令/工具 | 适用场景 |
---|---|---|
ifconfig |
ifconfig |
传统方法,显示详细网络信息 |
ip |
ip addr show |
现代方法,功能强大 |
hostname |
hostname -I |
快速获取IP地址 |
nmcli |
nmcli device show |
NetworkManager用户 |
curl /wget |
curl ifconfig.me |
获取公网IP地址 |
dig |
dig +short myip.opendns.com @resolver1.opendns.com |
获取公网IP地址 |
图形界面 | 系统设置 | 桌面用户 |
脚本 | 自定义脚本 | 自动化任务 |
ipcalc |
ipcalc |
IP地址和子网掩码计算 |
arp |
arp -a |
查看本地网络设备 |
相关问答FAQs
Q1: 如何在Linux中获取公网IP地址?
A1: 你可以使用 curl
或 wget
命令来获取公网IP地址。
curl ifconfig.me
或者:
wget -qOifconfig.me
这些命令会返回你的公网IP地址。
Q2: ifconfig
和 ip
命令有什么区别?
A2: ifconfig
是一个传统的网络配置命令,虽然功能强大,但在某些现代Linux发行版中已经被弃用。ip
命令是 ifconfig
的现代替代品,功能更强大且更灵活,支持更多的网络操作和配置选项。