当前位置:首页 > Linux > 正文

linux如何获取ip

Linux中,可通过 ip addrifconfig

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的命令行工具,用于管理网络连接。

linux如何获取ip  第1张

示例命令:

nmcli device show | grep 'IP4.ADDRESS'

输出示例:

IP4.ADDRESS[1]: 192.168.1.100

这个命令会显示所有网络设备的IPv4地址。

使用 curlwget 命令

如果你需要从外部获取IP地址(即公网IP),可以使用 curlwget 命令。

示例命令:

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地址。

步骤:

  1. 打开“设置”或“系统设置”。
  2. 进入“网络”或“网络连接”部分。
  3. 选择当前使用的网络接口(如 eth0wlan0)。
  4. 查看详细信息,通常会显示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

使用方法:

  1. 将上述脚本保存为 get_ip.sh
  2. 赋予执行权限:chmod +x get_ip.sh
  3. 运行脚本:./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: 你可以使用 curlwget 命令来获取公网IP地址。

curl ifconfig.me

或者:

wget -qOifconfig.me

这些命令会返回你的公网IP地址。

Q2: ifconfigip 命令有什么区别?

A2: ifconfig 是一个传统的网络配置命令,虽然功能强大,但在某些现代Linux发行版中已经被弃用。ip 命令是 ifconfig 的现代替代品,功能更强大且更灵活,支持更多的网络操作和配置选项。

0