所以基本上这个命令所做的就是安全地连接到一个 web 域来获取我的外部 IP 地址,这在 Linux Debian 系统上完美无缺,但在我的 OpenBSD 系统上却不能正常工作。Curl 命令可以正常工作,但是 Grep 命令出现了问题,因为它只是没有获取 curl 正在传输的 IP。
-Eo 不能与 OpenBSD 一起使用吗?我无法通过手册页来判断..
USERAGENT="Mozilla/4.0"
WEB_LOCATION="https://duckduckgo.com/?q=whats+my+ip"
curl -s --retry 3 --max-time 5 -tlsv1.2 --user-agent $USERAGENT $WEB_LOCATION | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'
******* 已解决(有点) *********
由于某种原因,我发现了这种特殊的模式:
grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'
没有在 OpenBSD 上工作,但是这个长版本可以..
grep -Eo '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
为什么会出现这种情况非常令人困惑,因为第一个搜索模式在我使用过的所有 Debian Linux 版本上都可以正常工作!