Voglio usare il nome del mio provider di servizi Internet in uno script e non so come posso farlo.
Per favore aiutatemi, grazie in anticipo.
Voglio usare il nome del mio provider di servizi Internet in uno script e non so come posso farlo.
Per favore aiutatemi, grazie in anticipo.
Risposte:
È possibile utilizzare molti siti Web forniti per trovare il nome del proprio ISP. Uno di questi è whoismyisp .
E per ottenere il tuo nome ISP, nello script bash puoi ottenere questo sito con qualcosa di simile curl
.
curl -s https://www.whoismyisp.org | grep -oP -m1 '(?<=isp">).*(?=</p)'
Inoltre puoi trovare l'ISP di qualsiasi IP desiderato con questo comando:
curl -s https://www.whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP -m1 '(?<=isp">).*(?=</p)'
Quello xxx.xxx.xxx.xxx
è quell'IP che vuoi trovare il suo ISP.
Ulteriori informazioni : Puoi trovare il tuo IP bash con questo comando (potrebbe essere utile per gli script):
dig +short myip.opendns.com @resolver1.opendns.com
curl ipinfo.io/org
.
curl ipinfo.io/org
non emette il nome completo dell'AS ma curl -s ipinfo.io/ASxxx | grep as-name
È possibile utilizzare, ad esempio, i servizi di ipinfo.io per determinare il proprio IP pubblico, comprese alcune informazioni aggiuntive come il nome dell'azienda del provider.
Il sito può essere normalmente visitato nel browser, ma se lo si interroga dalla riga di comando, ad esempio curl
, rispondono in un formato JSON pulito e ben definito in modo da non dover analizzare alcun 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"
}
Per mostrare solo un valore, è possibile inviare direttamente una richiesta al rispettivo percorso. Ad esempio per il nome ISP ( org
), prova questo:
curl ipinfo.io/org
Ispirato da questa risposta .
Per prima cosa prendo il numero del sistema autonomo:
$ curl -s ipinfo.io/org
AS2094 Renater
Quindi prendo il nome completo di quell'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
AS852 TELUS Communications Inc.
. L'opzione 2 sopra non restituisce nulla. La risposta accettata utilizza curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'
e restituisce Telus Communications
una versione limitata della risposta di Byte ma comunque valida. Questa è una di quelle risposte YMMV (Your Mileage May Vary).
ipinfo.org
ha nella loro raccolta di dati. Per me curl -s ipinfo.io/org
dà AS3320 Deutsche Telekom AG
mentre curl -s ipinfo.io/AS3320 | grep as-name
dà DTAG
(dopo un po '). Inoltre, quest'ultimo analizza nuovamente l'output HTML (soggetto a errori!). Quindi seguirò la risposta di ByteCommander.
AS3320
ottengo lo stesso DTAG
risultato che ottieni. Ma mi chiedo se usi il Canada, curl -s ipinfo.io/AS852 | grep as-name
ottieni un output nullo come me.
curl -s ipinfo.io/org
restituisca i dati in base all'IP richiedente mentre curl -s ipinfo.io/AS3320
restituisce i dati in base al parametro specificato (ignorando l'IP della richiesta). Comunque. L'analisi dell'HTML senza un parser adeguato è quasi sempre una cattiva idea. Conosci questa famosa risposta su Stack Overflow ? È divertente da leggere.