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/ip
,icanhazip.com
等: 这是提供 IP 查询服务的网址。
运行以上任意一个命令,你将会看到你的公网 IP 地址直接输出在终端中。
2. 查询指定网站的 IP 地址
虽然 curl
本身并不直接支持 DNS 查询, 但我们可以借助 dig
或 nslookup
命令解析域名到 IP, 再将 IP 传给 curl
发起请求来验证, 或者用一些在线 IP 查询服务获取网站 IP。
使用 dig
或 nslookup
结合 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 众多功能中的冰山一角, 多加练习和探索将会发现更多强大的用途。