5分钟学会用curl查询IP地址

5 分钟学会用 curl 查询 IP 地址

curl 是一个强大的命令行工具,用于与服务器进行数据传输。它支持多种协议,包括 HTTP、HTTPS、FTP、SFTP 等。除了传输数据,curl 还可以用来获取各种网络信息,其中就包括查询 IP 地址。

本教程将教你如何在 5 分钟内学会使用 curl 查询以下几种 IP 地址:

  • 你的公网 IP 地址
  • 指定网站的 IP 地址
  • 指定 IP 地址的地理位置信息

1. 查询你的公网 IP 地址

有多个在线服务可以提供你的公网 IP 地址。我们可以使用 curl 向这些服务发送请求,并从响应中提取 IP 地址。

以下是一些常用的 IP 查询服务以及对应的 curl 命令:

  • ipinfo.io

bash
curl ipinfo.io/ip

  • icanhazip.com

bash
curl icanhazip.com

  • ifconfig.me

bash
curl ifconfig.me

  • ipecho.net/plain

bash
curl ipecho.net/plain

  • checkip.amazonaws.com

bash
curl checkip.amazonaws.com

这些命令都非常简单:

  • curl: 这是 curl 命令本身。
  • ipinfo.io/ipicanhazip.com 等: 这是提供 IP 查询服务的网址。

运行以上任意一个命令,你将会看到你的公网 IP 地址直接输出在终端中。

2. 查询指定网站的 IP 地址

虽然 curl 本身并不直接支持 DNS 查询, 但我们可以借助 dignslookup 命令解析域名到 IP, 再将 IP 传给 curl 发起请求来验证, 或者用一些在线 IP 查询服务获取网站 IP。

使用 dignslookup 结合 curl:

```bash

使用 dig 获取 google.com 的 IP 地址

IP=$(dig +short google.com | head -n 1)

使用 curl 访问获取到的 IP (可以验证 IP 是否可用)

curl http://$IP

使用 nslookup 获取 google.com 的 IP 地址

IP=$(nslookup google.com | grep Address | awk 'NR==2{print $2}')

使用 curl 访问获取到的 IP (可以验证 IP 是否可用)

curl http://$IP
```

  • dig +short google.com:使用 dig 命令查询 google.com 的 IP 地址,+short 选项使输出更简洁。
  • head -n 1: 如果一个域名有多个 IP, 只取第一个 IP。
  • nslookup google.com: 使用 nslookup 命令查询 google.com 的 IP 地址。
  • grep Address: 过滤出包含 "Address" 的行。
  • awk 'NR==2{print $2}': 提取出第二个 Address 后面的 IP 地址。
  • $(): 将命令的输出作为变量的值。
  • $IP: 使用获取到的 IP 作为 curl 的目标地址。

使用在线服务:

你可以结合 curl 和一些在线 IP 查询服务(如 ipinfo.io)来获取网站 IP。例如,要获取 google.com 的 IP 地址信息(包括 IP),你可以使用:

bash
curl ipinfo.io/google.com

这条命令会返回 google.com 的 IP 地址以及其他相关信息。如果你只想要 IP 地址,可以使用:

bash
curl ipinfo.io/google.com/ip

3. 查询指定 IP 地址的地理位置信息

同样可以使用 ipinfo.io 服务来查询 IP 地址的地理位置信息。

bash
curl ipinfo.io/8.8.8.8

8.8.8.8 替换为你想要查询的 IP 地址。运行命令后,你将获得类似以下的 JSON 格式的输出:

json
{
"ip": "8.8.8.8",
"hostname": "dns.google",
"city": "Mountain View",
"region": "California",
"country": "US",
"loc": "37.4056,-122.0775",
"org": "AS15169 Google LLC",
"postal": "94043",
"timezone": "America/Los_Angeles",
"readme": "https://ipinfo.io/missingauth"
}

输出结果中包含了 IP 地址、主机名、城市、地区、国家、经纬度、组织、邮政编码和时区等信息。

如果想要获取特定字段的信息,可以在 URL 中添加字段名,例如,只获取城市信息:

bash
curl ipinfo.io/8.8.8.8/city

总结

以上就是使用 curl 查询 IP 地址的几种常见方法。通过这些简单的命令,你可以快速获取你的公网 IP 地址、指定网站的 IP 地址以及指定 IP 地址的地理位置信息。curl 是一个非常实用的工具,希望这篇文章能够帮助你入门 curl 的基本使用。记住,这只是 curl 众多功能中的冰山一角, 多加练习和探索将会发现更多强大的用途。

THE END