Come posso trovare il mio provider di servizi Internet (ISP) usando uno script bash?


21

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:


26

È 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

2
@TaraSVolpe Sono felice di poterti aiutare
Ali Razmdideh,

2
Questa risposta si basa sul layout di questo sito Web, mentre ipinfo.io utilizza un formato JSON ben definito. Non capisco perché questa risposta sia più votata.
NieDzejkob,

2
@NieDzejkob Forse perché ipinfo.io/org fornisce solo il numero AS ma non il nome dell'ISP
SebMa

1
@SebMa Quando ho eseguito la risposta di Byte sulla mia macchina in Ubuntu in Windows 10 (WSL), ha restituito il numero AS più il nome ISP utilizzando curl ipinfo.io/org.
Ciononostante

@NieDzejkob curl ipinfo.io/orgnon emette il nome completo dell'AS ma curl -s ipinfo.io/ASxxx | grep as-name

27

È 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 .


2
Sì, ipinfo è meglio di whoismyisp a causa del suo formato JSON +1
Ali Razmdideh

@AliRazmdideh Davvero magnanimo che hai votato la risposta degli altri ragazzi :)
WinEunuuchs2Unix

@ WinEunuuchs2Unix Grazie, penso che sia meglio del mio.
Ali Razmdideh,

1

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

1
Per me non funziona. Ho appena testato tutte le risposte sia in Ubuntu in Windows 10 (WSL) sia in Ubuntu 16.04 con il kernel 4.14.27. L'opzione 1 sopra (risposta del byte) ritorna 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 Communicationsuna versione limitata della risposta di Byte ma comunque valida. Questa è una di quelle risposte YMMV (Your Mileage May Vary).
WinEunuuchs2Unix

2
Apparentemente dipende dal provider o da ciò che ipinfo.orgha nella loro raccolta di dati. Per me curl -s ipinfo.io/orgAS3320 Deutsche Telekom AGmentre curl -s ipinfo.io/AS3320 | grep as-nameDTAG(dopo un po '). Inoltre, quest'ultimo analizza nuovamente l'output HTML (soggetto a errori!). Quindi seguirò la risposta di ByteCommander.
PerlDuck,

@PerlDuck Quando uso la Germania AS3320ottengo lo stesso DTAGrisultato che ottieni. Ma mi chiedo se usi il Canada, curl -s ipinfo.io/AS852 | grep as-nameottieni un output nullo come me.
WinEunuuchs2Unix

@ WinEunuuchs2Unix Sì, lo stesso per me. Nessuna uscita Ritengo curl -s ipinfo.io/orgrestituisca i dati in base all'IP richiedente mentre curl -s ipinfo.io/AS3320restituisce 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.
PerlDuck,

@PerlDuck È una lettura divertente soprattutto tutti i personaggi strani alla fine. Mettendo in guardia dal vento ho analizzato il codice HTML in bash: askubuntu.com/questions/900319/…
WinEunuuchs2Unix
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.