Linux下公共IP地址的20种方法

这个Linux快速提示将向您展示使用不同工具从命令行获取公用IP地址的许多不同方法。由于并非所有Linux发行版都安装了相同的软件包(程序)集,因此这些示例中的某些示例可能在您的系统上起作用或可能不起作用。例如,默认的Red Hat和CentOS安装没有安装dig工具。

所有这些选项将取决于外部来源。我们将在示例中尝试使用尽可能多的不同来源,以确保可靠性

使用curl命令

Curl是一种命令行工具,它使用许多受支持的协议在服务器之间来回传输数据。在这里,我们将使用HTTPS协议提取网页,并使用grep提取我们的公共IP地址。以下是一些使用curl从命令行获取公用IP地址的示例。

ipaddr.pub

curl ipaddr.pub

ifconfig.io

curl ifconfig.io

WhatismyIP.com

curl https://whatsmyip.com/ -s | grep -oE "\b([0-9]{1,3}.){3}[0-9]{1,3}\b" -m1

Google.com

curl https://www.google.com/search?q=what+is+my+ip+address -s | grep -oE "\b([0-9]{1,3}.){3}[0-9]{1,3}\b" -m1

akamai.com

curl -s http://whatismyip.akamai.com

ipecho.net

curl -s http://ipecho.net/plain

使用wget命令

wget命令是一个命令行实用程序,用于从Web上非交互式下载文件。它支持大多数HTTP,HTTPS和FTP以及通过HTTP代理服务器进行连接。这是一些有关如何使用wget从命令行获取公用IP地址的示例。

ipaddr.pub

wget -qO- ipaddr.pub/cli

ipecho.net

wget -qO- http://ipecho.net/plain

icanhazip.com

wget -qO- icanhazip.com

使用dig命令
dig命令是用于查询DNS服务器的命令行工具。此实用程序并非始终可用。如果要安装dig,它通常打包在基于Red Hat的发行版的bind-utils和基于Debian发行版的dnsutils中。以下是一些有关如何使用dig从命令行获取公用IP地址的示例。

google.com

dig @ ns1.google.com TXT oo.myaddr.l.google.com + short

google.com

dig +short myip.opendns.com @resolver1.opendns.com

使用主机命令

host命令是用于执行DNS查询的简单命令行实用程序。以下是一些如何使用host命令从命令行获取公用IP地址的示例。

host myip.opendns.com resolver1.opendns.com | grep -m2 -oE "\b([0-9]{1,3}.){3}[0-9]{1,3}\b" | tail -n1

使用nslookup命令

nslookup命令是查询DNS服务器的工具,非常类似于dig。该命令在包括Linux,UNIX和Windows在内的许多操作系统上都可用。以下是一些有关如何使用nslookup从命令行获取公用IP地址的示例。

google.com

nslookup -query=TXT o-o.myaddr.l.google.com ns1.google.com | grep -m2 -oE "\b([0-9]{1,3}.){3}[0-9]{1,3}\b" | tail -n1

opendns.com

nslookup myip.opendns.com resolver1.opendns.com | grep -m2 -oE "\b([0-9]{1,3}.){3}[0-9]{1,3}\b" | tail -n1

结论

从命令行获取公共IP地址的方法有很多。您使用哪种设备主要取决于系统上安装了什么。我们的首选方法是使用dig命令从DNS服务器获取数据,但是正如我们所述,dig并不总是可用。

每日科技资讯 | 20200811
每日科技资讯 | 20200810