我想在脚本中使用我的互联网服务提供商的名称,但我不知道该怎么做。
请帮助我,提前谢谢。
答案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.io和ifconfig.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