如何在 shell 脚本中获取我的外部 IP 地址?

Eug*_*ash 311 linux ip shell-script

我需要从 shell 脚本中找到我的外部 IP 地址。目前我使用这个功能:

myip () { 
    lwp-request -o text checkip.dyndns.org | awk '{ print $NF }'
}
Run Code Online (Sandbox Code Playgroud)

但这取决于perl-libwww, perl-html-format,perl-html-tree已安装。我可以通过哪些其他方式获得我的外部 IP?

Tim*_*hof 517

我建议直接从 DNS 服务器获取它。

下面的大多数其他答案都涉及通过 HTTP 连接到远程服务器。其中一些需要解析输出,或者依靠 User-Agent 标头使服务器以纯文本形式响应。那些变化非常频繁(下去,更改名称,放置广告,可能会更改输出格式等)。

  1. DNS 响应协议是标准化的(格式将保持兼容)。
  2. 从历史上看,DNS 服务(Akamai、Google Public DNS、OpenDNS 等)往往比当今流行的任何新的时髦 whatismyip dot-com HTTP 服务更稳定、更可扩展且通常更受关注。
  3. 这种方法本质上更快(可能只有几毫秒!)。

使用dig与OpenDNS的分解:

$ dig @resolver4.opendns.com myip.opendns.com +short
Run Code Online (Sandbox Code Playgroud)

也许在你的别名中,bashrc这样很容易记住

# https://unix.stackexchange.com/a/81699/37512
alias wanip='dig @resolver4.opendns.com myip.opendns.com +short' 
alias wanip4='dig @resolver4.opendns.com myip.opendns.com +short -4'
alias wanip6='dig @resolver1.ipv6-sandbox.opendns.com AAAA myip.opendns.com +short -6'
Run Code Online (Sandbox Code Playgroud)

以一个普通的 IP 地址响应:

$ wanip # wanip4, or wanip6
80.100.192.168 # or, 2606:4700:4700::1111
Run Code Online (Sandbox Code Playgroud)

句法

(缩写自https://ss64.com/bash/dig.html

usage:  dig [@global-dnsserver] [q-type] <hostname> <d-opt> [q-opt]

    q-type   one of (A, ANY, AAAA, TXT, MX, ...). Default: A.

    d-opt    ...
             +[no]short          (Display nothing except short form of answer)
             ...

    q-opt    one of:
             -4                  (use IPv4 query transport only)
             -6                  (use IPv6 query transport only)
             ...
Run Code Online (Sandbox Code Playgroud)

ANY查询类型传回AAAA级或A记录。要专门首选 IPv4 或 IPv6 连接,请相应地使用-4-6选项。

要要求响应为 IPv4 地址,请将 ANY 替换为A;对于 IPv6,将其替换为AAAA. 请注意,它只能返回用于连接的地址。例如,当通过 IPv6 连接时,它不能返回 A 地址。

替代服务器

各种 DNS 提供商都提供此服务,包括OpenDNSAkamaiGoogle Public DNS

# OpenDNS (since 2009)
$ dig @resolver3.opendns.com myip.opendns.com +short
$ dig @resolver4.opendns.com myip.opendns.com +short
80.100.192.168

# OpenDNS IPv6
$ dig @resolver1.ipv6-sandbox.opendns.com AAAA myip.opendns.com +short -6
2606:4700:4700::1111

# Akamai (since 2009)
$ dig @ns1-1.akamaitech.net ANY whoami.akamai.net +short
80.100.192.168

# Akamai approximate
# NOTE: This returns only an approximate IP from your block,
# but has the benefit of working with private DNS proxies.
$ dig +short TXT whoami.ds.akahelp.net
"ip" "80.100.192.160"

# Google (since 2010)
# Supports IPv6 + IPv4, use -4 or -6 to force one.
$ dig @ns1.google.com TXT o-o.myaddr.l.google.com +short
"80.100.192.168"
Run Code Online (Sandbox Code Playgroud)

专门请求 IPv4 地址的示例别名:

# https://unix.stackexchange.com/a/81699/37512
alias wanip4='dig @resolver4.opendns.com myip.opendns.com +short -4'

$ wanip4
80.100.192.168
Run Code Online (Sandbox Code Playgroud)

对于您的 IPv6 地址:

# https://unix.stackexchange.com/a/81699/37512
alias wanip6='dig @ns1.google.com TXT o-o.myaddr.l.google.com +short -6'

$ wanip6
"2606:4700:4700::1111"
Run Code Online (Sandbox Code Playgroud)

故障排除

如果该命令由于某种原因不起作用,则可能是网络问题。首先尝试上述替代方法之一。

如果您怀疑存在不同的问题(与上游提供商、命令行工具或其他问题),请运行该命令而不+short选择显示 DNS 查询的详细信息。例如:

$ dig @resolver4.opendns.com myip.opendns.com

;; Got answer: ->>HEADER<<- opcode: QUERY, status: NOERROR

;; QUESTION SECTION:
;myip.opendns.com.      IN  A

;; ANSWER SECTION:
myip.opendns.com.   0   IN  A   80.100.192.168

;; Query time: 4 msec
Run Code Online (Sandbox Code Playgroud)

  • 你说得对,太快了。。 (21认同)
  • 我发现这比 `curl http://canhazip.com` 快 19 倍。见 http://askubuntu.com/a/427092/2273 (14认同)
  • 请注意,在某些情况下,提供 NAT 的路由器也会转换 DNS 响应(您可以查看 http://wiki.nil.com/Network_address_translation_of_DNS_responses);在这种情况下,您应该回退到推荐其他方法而不是 DNS 的答案。 (6认同)
  • @Krinkle 这是一个很好的答案。Google 公共 DNS 中是否有“myip.opendns.com”的等价物? (5认同)
  • 喜欢这种干净/无依赖的方法比所有其他建议都要好得多,除非你必须使用端口 80 (4认同)
  • @JamesHaigh &lt; 他们有很多提供商,请参阅 http://serverfault.com/a/560059 (3认同)
  • 因纯粹的优雅和完美的推理而受到赞誉。(但是,对于超级无意义的极客模式,我更改了 cmd 顺序以匹配 `man` 页面) (3认同)
  • 将 bash 别名放在 `~/.bash_aliases` 中更优雅,而不是直接将它们放在 `~/.bashrc` 中。 (2认同)
  • 这在我的公司代理后面时不起作用。 (2认同)
  • 你可能想在 `dig` 命令中添加 `+tcp`,以防止中间框产生有趣的结果 (2认同)

rsp*_*rsp 176

注意:这是关于外部IP 地址(Internet 上的服务器在您连接到它们时看到的地址)-如果您想要内部IP 地址(您自己的计算机用于连接的地址,可能不同),请参阅此回答

TL;DR - 2015 年最快的方法

使用 DNS 的最快方法:

dig +short myip.opendns.com @resolver4.opendns.com
Run Code Online (Sandbox Code Playgroud)

或使用externalip

externalip dns
Run Code Online (Sandbox Code Playgroud)

最快的使用HTTP:

curl -s http://whatismyip.akamai.com/
Run Code Online (Sandbox Code Playgroud)

或使用 externalip:

externalip http
Run Code Online (Sandbox Code Playgroud)

使用具有有效证书的 HTTPS 最快:

curl -s https://4.ifcfg.me/
Run Code Online (Sandbox Code Playgroud)

或使用 externalip:

externalip https
Run Code Online (Sandbox Code Playgroud)

使用远程登录:

使用nc命令:

nc 4.ifcfg.me 23 | grep IPv4 | cut -d' ' -f4
Run Code Online (Sandbox Code Playgroud)

或使用 externalip:

externalip telnet
Run Code Online (Sandbox Code Playgroud)

使用telnet命令:

telnet 4.ifcfg.me 2>&1 | grep IPv4 | cut -d' ' -f4
Run Code Online (Sandbox Code Playgroud)

使用 FTP:

echo close | ftp 4.ifcfg.me | awk '{print $4; exit}'
Run Code Online (Sandbox Code Playgroud)

或使用 externalip:

externalip ftp
Run Code Online (Sandbox Code Playgroud)

以上所有内容都可以使用我的externalip脚本运行:

externalip dns
externalip http
externalip https
externalip telnet
externalip ftp
Run Code Online (Sandbox Code Playgroud)

现在是一个很长的故事......

提供外部 IP 的不同服务器有很多选项,尤其是通过此处或其他地方发布的 HTTP。

我做了一个基准测试,看看它们中是否有任何一个比其他的更好,结果让我感到惊讶。例如,最广泛推荐的 ifconfig.me 对我来说几乎总是最慢的,有时需要很多秒才能响应。许多不能通过 HTTPS 工作,或者可以工作但证书无效。有些响应时间非常不一致。

基准

HTTP 和 HTTPS

这是我使用的 externalip-benchmark 脚本的来源:

你可以自己运行一下,看看这里提到的哪些服务值得使用:

wget https://raw.githubusercontent.com/rsp/scripts/master/externalip-benchmark
chmod a+x externalip-benchmark
./externalip-benchmark
Run Code Online (Sandbox Code Playgroud)

我在 2015-04-03 从华沙得到的结果 - 地址已更改以保护无辜者:

最佳 http 响应时间:

0.086s http://ip.tyk.nu/ - answer='172.31.133.7'
0.089s http://whatismyip.akamai.com/ - answer='172.31.133.7'
0.091s http://tnx.nl/ip - answer='172.31.133.7'
0.117s http://ifcfg.me/ - answer='172.31.133.7'
0.156s http://l2.io/ip - answer='172.31.133.7'
0.317s http://ip.appspot.com/ - answer='172.31.133.7'
0.336s http://ident.me/ - answer='172.31.133.7'
0.338s http://ipof.in/txt - answer='172.31.133.7'
0.347s http://icanhazip.com/ - answer='172.31.133.7'
0.496s http://curlmyip.com/ - answer='172.31.133.7'
0.527s http://wgetip.com/ - answer='172.31.133.7'
0.548s http://curlmyip.com/ - answer='172.31.133.7'
0.665s http://bot.whatismyipaddress.com/ - answer='172.31.133.7'
0.665s http://eth0.me/ - answer='172.31.133.7'
1.041s http://ifconfig.me/ - answer='172.31.133.7'
1.049s http://corz.org/ip - answer='172.31.133.7'
1.598s http://ipecho.net/plain - answer='172.31.133.7'
Run Code Online (Sandbox Code Playgroud)

最佳 https 响应时间:

0.028s https://curlmyip.com/ - answer=''
0.028s https://curlmyip.com/ - answer=''
0.029s https://l2.io/ip - answer=''
0.029s https://tnx.nl/ip - answer=''
0.072s https://whatismyip.akamai.com/ - answer=''
0.113s https://ipecho.net/plain - answer=''
0.117s https://ident.me/ - answer=''
0.207s https://ip.tyk.nu/ - answer='172.31.133.7'
0.214s https://ipof.in/txt - answer='172.31.133.7'
0.259s https://ifcfg.me/ - answer='172.31.133.7'
0.289s https://corz.org/ip - answer=''
0.436s https://ip.appspot.com/ - answer='172.31.133.7'
0.448s https://bot.whatismyipaddress.com/ - answer=''
0.454s https://eth0.me/ - answer=''
0.673s https://icanhazip.com/ - answer='172.31.133.7'
5.255s https://ifconfig.me/ - answer=''
10.000s https://wgetip.com/ - answer=''
Run Code Online (Sandbox Code Playgroud)

(注意:有一些带有空内容的快速响应 - 这些是无效的。)

最佳平均 ping 时间:

10.210 //whatismyip.akamai.com/
36.820 //tnx.nl/ip
37.169 //ip.tyk.nu/
39.412 //ipof.in/txt
40.967 //ident.me/
41.257 //ipecho.net/plain
43.918 //ifcfg.me/
45.720 //l2.io/ip
64.749 //ip.appspot.com/
123.412 //corz.org/ip
134.245 //wgetip.com/
157.997 //icanhazip.com/
161.613 //curlmyip.com/
162.100 //curlmyip.com/
268.734 //ifconfig.me/
999999 //bot.whatismyipaddress.com/
999999 //eth0.me/
Run Code Online (Sandbox Code Playgroud)

以下是我在 2015-04-03 从阿姆斯特丹得到的结果:

最佳 http 响应时间:

0.021s http://ipecho.net/plain - answer='172.31.13.37'
0.027s http://tnx.nl/ip - answer='172.31.13.37'
0.035s http://whatismyip.akamai.com/ - answer='172.31.13.37'
0.039s http://ifcfg.me/ - answer='172.31.13.37'
0.045s http://l2.io/ip - answer='172.31.13.37'
0.142s http://ident.me/ - answer='172.31.13.37'
0.144s http://ipof.in/txt - answer='172.31.13.37'
0.150s http://ip.appspot.com/ - answer='172.31.13.37'
0.150s http://ip.tyk.nu/ - answer='172.31.13.37'
0.170s http://icanhazip.com/ - answer='172.31.13.37'
0.190s http://eth0.me/ - answer='172.31.13.37'
0.191s http://wgetip.com/ - answer='172.31.13.37'
0.301s http://curlmyip.com/ - answer='172.31.13.37'
0.330s http://bot.whatismyipaddress.com/ - answer='172.31.13.37'
0.343s http://curlmyip.com/ - answer='172.31.13.37'
0.485s http://corz.org/ip - answer='172.31.13.37'
3.549s http://ifconfig.me/ - answer='172.31.13.37'
Run Code Online (Sandbox Code Playgroud)

最佳 https 响应时间:

0.004s https://curlmyip.com/ - answer=''
0.012s https://curlmyip.com/ - answer=''
0.012s https://tnx.nl/ip - answer=''
0.016s https://ipecho.net/plain - answer=''
0.071s https://whatismyip.akamai.com/ - answer=''
0.096s https://ifcfg.me/ - answer='172.31.13.37'
0.097s https://ident.me/ - answer=''
0.187s https://corz.org/ip - answer=''
0.187s https://ip.appspot.com/ - answer='172.31.13.37'
0.189s https://ip.tyk.nu/ - answer='172.31.13.37'
0.195s https://eth0.me/ - answer=''
0.253s https://l2.io/ip - answer=''
0.300s https://ipof.in/txt - answer='172.31.13.37'
0.324s https://bot.whatismyipaddress.com/ - answer=''
0.512s https://icanhazip.com/ - answer='172.31.13.37'
1.272s https://ifconfig.me/ - answer=''
10.002s https://wgetip.com/ - answer=''
Run Code Online (Sandbox Code Playgroud)

最佳平均 ping 时间:

1.020 //ipecho.net/plain
1.087 //whatismyip.akamai.com/
5.011 //ip.appspot.com/
6.942 //ident.me/
7.017 //ipof.in/txt
8.209 //tnx.nl/ip
11.343 //ip.tyk.nu/
12.647 //ifcfg.me/
13.828 //l2.io/ip
81.642 //icanhazip.com/
85.447 //wgetip.com/
91.473 //corz.org/ip
102.569 //curlmyip.com/
102.627 //curlmyip.com/
247.052 //ifconfig.me/
999999 //bot.whatismyipaddress.com/
999999 //eth0.me/
Run Code Online (Sandbox Code Playgroud)

(999999 ping 意味着 100% 数据包丢失。)

域名系统

为了比较这里是其他方法采取的时间 - 于 2015 年 6 月 16 日在华沙和阿姆斯特丹进行了测试。

使用:

time dig +short myip.opendns.com @resolver1.opendns.com
Run Code Online (Sandbox Code Playgroud)

通常需要(真实挂钟时间)大约:

  • 来自华沙的 0.035 秒
  • 来自阿姆斯特丹的 0.015 秒

实际上有四种解析器可以这样使用:

  • resolver1.opendns.com
  • resolver2.opendns.com
  • resolver3.opendns.com
  • resolver4.opendns.com

它们在华沙和阿姆斯特丹的响应时间都相同,但在其他地方可能并非如此。

使用 208.67.222.222 - resolver1.opendns.com 的 IP 而不是它的域名更快:

  • 来自华沙的 0.023 秒
  • 来自阿姆斯特丹的 0.009 秒

但如果 IP 发生变化,将来可能无法使用(尽管对于众所周知的 DNS 解析器来说可能不太可能 - 也许我应该在我的externalip脚本中使用该 IP - 请发表评论)。

远程登录

Telnet with ncortelnet命令(见上文)通常需要:

  • 来自华沙的 0.103 秒
  • 来自阿姆斯特丹的 0.035 秒

nctelnet命令之间没有明显区别。)

FTP

  • 来自华沙的 0.104 秒
  • 0.036s 来自阿姆斯特丹

域名

当使用 IP 地址而不是给定服务的域名时,所有方法都会更快(尤其是第一次运行时)(HTTP 除外,它可以使用基于主机的虚拟服务器并且不能使用裸 IP -未测试)但会在服务更改 IP 地址时停止工作,因此它可能会更快但不太可靠。

注释

如果您从您所在的位置看到一些有趣的结果,或者您认为应该推荐其他一些主机而不是我选择的主机,请发表评论。如果缺少重要服务,请在GitHub上评论或发布问题。我想通过当前选择的最佳性能服务来更新这篇文章。

  • 您是否像 [Krinkle 的回答](https://unix.stackexchange.com/questions/22615/how-can-i-get-my-external-ip-address- in-bash/81699#answer-81699)?目前,由于不知道此方法的任何其他提供者,它似乎是默认的赢家,但与其他方法进行比较仍然很有用。 (2认同)

小智 83

 curl -s http://whatismijnip.nl |cut -d " " -f 5
Run Code Online (Sandbox Code Playgroud)

用荷兰工作站点替换站点。

  • `whatismyip.com` 移除了[免费服务](http://automation.whatismyip.com/n09230945.asp) 来检查外部IP。所以,恐怕这不再正确。`icanhazip.com` 仍然有效。 (5认同)
  • 似乎不再通过 CLI 工作,但从 Web 浏览器转到网页有效。我正在使用 openSUSE 12.1 x64。 (4认同)
  • @MaciekSawicki 在这种情况下真的需要 `-s` 选项吗?我在我的 Fedora 15 - bash 4.2.10(1) 中尝试使用/不使用它,它以两种方式工作。 (2认同)

小智 57

由于whatsmyip.orgifconfig.me已经被提及:

curl -s icanhazip.com
Run Code Online (Sandbox Code Playgroud)

  • 另一个:http://ip.appspot.com 或 https://ip.appspot.com/ (4认同)

小智 19

您可以使用ifconfig.me作为 whatismyip.org 的替代品。

curl -s http://ifconfig.me
Run Code Online (Sandbox Code Playgroud)

此外 ifconfig.me 有一些额外的功能。要了解您可以收到的其他信息,请访问该网站。

  • 它**极慢**。我的响应时间经常超过 30 秒,有时甚至超过一分钟!有时是半秒(仍然很多),然后是 15 秒左右。这是从不同位置测试的。请参阅 [**我的答案以获取更多信息和基准。**](https://unix.stackexchange.com/questions/22615/how-can-i-get-my-external-ip-address-in-bash/ 194136#194136) (5认同)

Cir*_*郝海东 19

亚马逊AWS

curl https://checkip.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

示例输出:

123.123.123.123
Run Code Online (Sandbox Code Playgroud)

也适用于浏览器:http : //checkip.amazonaws.com

我喜欢它因为:

  • 它只返回回复正文中的纯文本 IP,没有别的
  • 它来自一家知名提供商,不太可能很快下线


zta*_*013 15

wget -O - -q http://whatismyip.org/
Run Code Online (Sandbox Code Playgroud)

  • 我无法像这样获得我的 IP,只是将其设为:`&lt;img src='ipimg.php'/&gt;` (3认同)

Eug*_*ash 9

netcat icanhazip.com 80 <<< $'GET / HTTP/1.1\nHost: icanhazip.com\n\n' | tail -n1
Run Code Online (Sandbox Code Playgroud)


Man*_*nde 9

curl ident.me
Run Code Online (Sandbox Code Playgroud)

或者

curl ifconfig.me
Run Code Online (Sandbox Code Playgroud)

或者

curl https://tnx.nl/ip
Run Code Online (Sandbox Code Playgroud)

或者

curl ipecho.net/plain
Run Code Online (Sandbox Code Playgroud)

或者

curl whatismyip.akamai.com
Run Code Online (Sandbox Code Playgroud)

或者

curl icanhazip.com
Run Code Online (Sandbox Code Playgroud)

或者

curl wgetip.com
Run Code Online (Sandbox Code Playgroud)

或者

curl ip.tyk.nu
Run Code Online (Sandbox Code Playgroud)

或者

curl bot.whatismyipaddress.com
Run Code Online (Sandbox Code Playgroud)

参考


miv*_*ivk 8

如果在阅读了所有这些建议后您还想阅读更多内容,这里有一个可以说是过度设计的 Bash 脚本。

它包含一个 DNS 和 HTTP 服务器列表,截至 2017 年 2 月,这些服务器似乎运行良好。

如果有dig,它首先尝试 DNS,这几乎比各种 HTTP 服务快一个数量级。

它在收到第一个回复时退出。

如果您没有dig或者所有 DNS 服务器都失败了,它就会尝试 HTTP 服务,直到得到答复。

服务器按字母顺序列出,但在使用前会进行洗牌以避免总是使用相同的服务器。

#!/bin/bash

## Get my external IP

timeout=2   # seconds to wait for a reply before trying next server
verbose=1   # prints which server was used to STDERR

dnslist=(
    "dig +short            myip.opendns.com        @resolver1.opendns.com"
    "dig +short            myip.opendns.com        @resolver2.opendns.com"
    "dig +short            myip.opendns.com        @resolver3.opendns.com"
    "dig +short            myip.opendns.com        @resolver4.opendns.com"
    "dig +short    -t txt  o-o.myaddr.l.google.com @ns1.google.com"
    "dig +short -4 -t a    whoami.akamai.net       @ns1-1.akamaitech.net"
    "dig +short            whoami.akamai.net       @ns1-1.akamaitech.net"
)

httplist=(
    4.ifcfg.me
    alma.ch/myip.cgi
    api.infoip.io/ip
    api.ipify.org
    bot.whatismyipaddress.com
    canhazip.com
    checkip.amazonaws.com
    eth0.me
    icanhazip.com
    ident.me
    ipecho.net/plain
    ipinfo.io/ip
    ipof.in/txt
    ip.tyk.nu
    l2.io/ip
    smart-ip.net/myip
    tnx.nl/ip
    wgetip.com
    whatismyip.akamai.com
)



# function to shuffle the global array "array"
shuffle() {
   local i tmp size max rand
   size=${#array[*]}
   max=$(( 32768 / size * size ))
   for ((i=size-1; i>0; i--)); do
      while (( (rand=$RANDOM) >= max )); do :; done
      rand=$(( rand % (i+1) ))
      tmp=${array[i]} array[i]=${array[rand]} array[rand]=$tmp
   done
}


## if we have dig and a list of dns methods, try that first
if hash dig 2>/dev/null && [ ${#dnslist[*]} -gt 0 ]; then
    eval array=( \"\${dnslist[@]}\" )
    shuffle

    for cmd in "${array[@]}"; do
        [ "$verbose" == 1 ] && echo Trying: $cmd 1>&2
        ip=$(timeout $timeout $cmd)
        if [ -n "$ip" ]; then
            echo $ip
            exit
        fi
    done
fi


# if we haven't succeeded with DNS, try HTTP

if [ ${#httplist[*]} == 0 ]; then
    echo "No hosts in httplist array!" >&2
    exit 1
fi

# use curl or wget, depending on which one we find
curl_or_wget=$(if hash curl 2>/dev/null; then echo "curl -s"; elif hash wget 2>/dev/null; then echo "wget -qO-"; fi);

if [ -z "$curl_or_wget" ]; then
    echo "Neither curl nor wget found. Cannot use http method." >&2
    exit 1
fi

eval array=( \"\${httplist[@]}\" )
shuffle

for url in "${array[@]}"; do
    [ "$verbose" == 1 ] && echo Trying: $curl_or_wget  "$url" 1>&2
    ip=$(timeout $timeout $curl_or_wget "$url")
    if [ -n "$ip" ]; then
        echo $ip
        exit
    fi
done
Run Code Online (Sandbox Code Playgroud)

示例用法(我称之为脚本myip):

$ myip
Trying: dig +short -t txt o-o.myaddr.l.google.com @ns1.google.com
"151.101.65.69"

$ ip=$(myip); echo "IP = '$ip'"
Trying: dig +short myip.opendns.com @resolver1.opendns.com
IP = '151.101.65.69'
Run Code Online (Sandbox Code Playgroud)

注释掉verbose脚本顶部的变量以避免打印使用的服务器。

更新:这个脚本现在也在 Github 上,我可能会在需要时更新它:https :
//github.com/mivk/myip


Gar*_*lie 7

我更喜欢使用 curlmyip.com 就这么简单:

curl curlmyip.com

它简短易记。

  • @SergeStroobandt 是的,你可以。`-s` 开关所做的就是在静默模式下运行它,即。不会显示错误消息。所以这归结为他希望他的脚本如何处理错误。命令本身会像使用`-s`一样可靠地返回一个IP地址。 (4认同)