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

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

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

请帮助我,提前谢谢。

答案1

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

该网站可以在您的浏览器中正常访问,但如果您从命令行使用例如查询它curl,它们会以干净且定义明确的 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

灵感来自这个答案

答案2

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

要在 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您要查找的 IP 在哪里以及其 ISP 在哪里。


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

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

答案3

我其实很喜欢用api.bgpview.ioifconfig.me
bash 单行命令(需要apt install curl jq)是:

curl -L -s "https://api.bgpview.io/ip/$(curl -s ifconfig.me)" | jq -r '.data.prefixes | .[] | (.prefix | tostring) + " " + (.ip | tostring) + " " + (.asn.asn | tostring) + " " + .asn.name + " " + .asn.description'

答案4

首先我获取自治系统编号:

$ curl -s ipinfo.io/org
AS2094 Renater

然后我获取该 AS 的全名:

$ curl -s ipinfo.io/$(curl -s ipinfo.io/org | cut -d" " -f1) | awk'/as-name/{print$NF}'

$ whois $(curl -s ipinfo.io/org | cut -d" " -f1) | awk -F: 'BEGIN{IGNORECASE=1}/(as-?name|org-?name):/{sub("^  *","",$2);print$2}'
FR-TELECOM-MANAGEMENT-SUDPARIS
Renater

相关内容