当前位置: 首页>>技术教程>>正文


如何使用 bash 脚本找到我的 Internet 服务提供商 (ISP)?

,

问题描述

我想在脚本中使用我的互联网服务提供商的名称,但我不知道该怎么做。

请帮助我,提前致谢。

最佳方案

你可以使用例如ipinfo.io 的服务用于确定您的公共 IP,包括一些附加信息,例如提供商公司名称。

该网站可以在您的浏览器中正常访问,但如果您使用例如 命令行 查询它curl ,它们以干净的 well-defined JSON 格式响应,因此您不需要解析任何 HTML:

$ curl ipinfo.io
{
  "ip": "xxx.xxx.xxx.xxx",
  "hostname": "xxxxxxxxxxxxxxxxxxxxxxxxxxx.xx",
  "city": "xxxxxxxx",
  "region": "xxxxxxxxxx",
  "country": "xx",
  "loc": "xxx.xxxx,xxx.xxxx",
  "org": "xxxxxxxxxxxx",
  "postal": "xxxxx"
}

如果只显示一个值,可以直接向相应路径发送请求。例如。对于 ISP 名称 ( org ),请尝试以下操作:

curl ipinfo.io/org

灵感来自 this answer

次佳方案

您可以使用提供的许多网站来查找您的 ISP 名称。其中之一是 whoismyisp

要在 bash 脚本中获取您的 ISP 名称,您可以通过类似 curl. 的方式获取此站点

header='--header=User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11'
wget "$header" -q -O - whoismyisp.org | grep -oP -m1 '(?<=block text-4xl\">).*(?=</span)'

您还可以使用以下命令找到任何所需 IP 的 ISP:

header='--header=User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11'
wget "$header" -q -O - whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP -m1 '(?<=block text-4xl\">).*(?=</span)'

其中 xxx.xxx.xxx.xxx 是您要查找其 ISP 的 IP。


附加信息:您可以使用以下命令通过 bash 找到您的 IP(这可能对脚本有帮助):

dig +short myip.opendns.com @resolver1.opendns.com

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13857.html,未经允许,请勿转载。