Ich möchte den Namen meines Internetdienstanbieters in einem Skript verwenden, und ich weiß nicht, wie ich das tun kann.
Bitte helfen Sie mir, danke im Voraus.
Sie können viele Websites verwenden, um Ihren ISP-Namen zu finden. Einer von ihnen ist whoismyisp .
Und um Ihren ISP-Namen zu erhalten, können Sie diese Site in Bash-Skripten über so etwas wie abrufen curl
.
curl -s https://www.whoismyisp.org | grep -oP -m1 '(?<=isp">).*(?=</p)'
Mit diesem Befehl können Sie auch ISPs aller gewünschten IPs finden:
curl -s https://www.whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP -m1 '(?<=isp">).*(?=</p)'
Das xxx.xxx.xxx.xxx
ist die IP, deren ISP Sie finden möchten.
Zusätzliche Informationen : Sie können Ihre IP durch Bash mit diesem Befehl finden (das kann für Skripte hilfreich sein):
dig +short myip.opendns.com @resolver1.opendns.com
curl ipinfo.io/org
.curl ipinfo.io/org
gibt nicht den vollständigen Namen des AS aus,curl -s ipinfo.io/ASxxx | grep as-name
tut dies aber :)Sie können beispielsweise die Dienste von ipinfo.io verwenden , um Ihre öffentliche IP- Adresse zu ermitteln, einschließlich einiger zusätzlicher Informationen wie dem Firmennamen des Anbieters.
Die Site kann normalerweise in Ihrem Browser aufgerufen werden. Wenn Sie sie jedoch über die Befehlszeile mit z. B. abfragen
curl
, antworten sie in einem sauberen und gut definierten JSON-Format, sodass Sie kein HTML analysieren müssen:Um nur einen Wert anzuzeigen, können Sie direkt eine Anfrage an den jeweiligen Pfad senden.
org
Versuchen Sie beispielsweise Folgendes für den ISP-Namen ( ):Inspiriert von dieser Antwort .
quelle
Zuerst hole ich mir die Autonomous System Nummer:
Dann hole ich mir den vollständigen Namen dieser AS:
$ curl -s ipinfo.io/$(curl -s ipinfo.io/org | cut -d "" -f1) | awk '/ as-name / {print $ NF}'quelle
AS852 TELUS Communications Inc.
. Ihre obige Option 2 gibt nichts zurück. Die akzeptierte Antwort verwendetcurl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'
und gibt zurück,Telus Communications
was eine eingeschränkte Version von Bytes Antwort ist, aber immer noch gut. Dies ist eine der Antworten von YMMV (Your Mileage May Vary).ipinfo.org
in seiner Datenerfassung steht. Für michcurl -s ipinfo.io/org
gibt ,AS3320 Deutsche Telekom AG
währendcurl -s ipinfo.io/AS3320 | grep as-name
gibtDTAG
(nach einer Weile). Letzteres analysiert auch wieder die HTML-Ausgabe (fehleranfällig!). Also bleibe ich bei der Antwort von ByteCommander.AS3320
bekomme ich die selbeDTAG
Ausgabe wie du. Aber ich frage mich, ob Sie Kanadas verwenden und keinecurl -s ipinfo.io/AS852 | grep as-name
Ausgabe wie ich erhalten.curl -s ipinfo.io/org
Daten basierend auf der anfragenden IP zurückgegeben werden, währendcurl -s ipinfo.io/AS3320
Daten basierend auf dem angegebenen Parameter zurückgegeben werden (wobei die IP der Anfrage ignoriert wird). Sowieso. Das Parsen von HTML ohne einen richtigen Parser ist fast immer eine schlechte Idee. Kennen Sie diese berühmte Antwort auf Stack Overflow ? Es macht Spaß zu lesen.