如何从命令行获取我的 IP 地址?

如何从命令行获取我的 IP 地址?

我使用的是 Debian 8。如何从命令行获取外部 IP 地址?我认为下面的命令可以完成这项工作......

myuser@myserver:~ $ /sbin/ifconfig $1 | grep "inet\|inet6" | awk -F' ' '{print $2}' | awk '{print $1}'
addr:192.168.0.114
addr:
addr:127.0.0.1
addr:

但正如你所看到的,它只暴露了局域网中机器的IP地址。我有兴趣了解全世界的知识产权。

答案1

这会将您的公共 IP 返回给您

dig TXT +short o-o.myaddr.l.google.com @ns1.google.com

答案2

您的意思是您的 dsl/电缆调制解调器/等的任何可路由 IP。路由器有吗?

您需要查询该设备,或者询问外部服务器,当您连接到该设备时,它看到的 IP 是什么。最简单的方法是在谷歌上搜索“我的IP是什么”,就像计算搜索一样,它会在第一个搜索结果中告诉你。如果您想从命令行执行此操作,则需要检查某些脚本的输出,该脚本将回显信息。动态 dns 服务 dyndns.org 有一个可供您使用的服务 - 尝试此命令

wget http://checkip.dyndns.org -O -

你应该得到类似的东西

HTTP request sent, awaiting response... 200 OK
Length: 105 [text/html]
Saving to: ‘STDOUT’

-                     0%[                    ]       0  --.-KB/s               <html><head><title>Current IP Check</title></head><body>Current IP Address: 192.168.1.199</body></html>
-                   100%[===================>]     105  --.-KB/s    in 0s      

2017-09-20 14:16:00 (15.4 MB/s) - written to stdout [105/105]

我已将我的 IP 更改为通用的不可路由的 IP,并为您将其加粗。

如果你只想要IP,你需要从那里解析它——快速而肮脏,但它对我有用。我百分百肯定有更好更安全的方法......

wget http://checkip.dyndns.org -O - | grep IP | cut -f 2- -d : | cut -f 1 -d \<

这会给你

192.168.1.199

答案3

替代方案(避免解析):

获取 IPv4

curl -4 icanhazip.com

获取 IPv6

curl -6 icanhazip.com

相关内容