Comment puis-je trouver mon fournisseur d'accès Internet (FAI) à l'aide d'un script bash?

21

Je souhaite utiliser le nom de mon fournisseur de services Internet dans un script et je ne sais pas comment procéder.

Veuillez m'aider, merci d'avance.

Tara S Volpe
la source

Réponses:

26

Vous pouvez utiliser de nombreux sites Web, fournis pour trouver votre nom de FAI. L'un d'eux est Whoismyisp .

Et pour obtenir votre nom de FAI, dans le script bash, vous pouvez obtenir ce site par quelque chose comme curl.

curl -s https://www.whoismyisp.org | grep -oP -m1 '(?<=isp">).*(?=</p)'

Vous pouvez également trouver le FAI de toutes les adresses IP souhaitées avec cette commande:

curl -s https://www.whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP -m1 '(?<=isp">).*(?=</p)'

C'est xxx.xxx.xxx.xxxcette IP que vous voulez trouver son FAI.


Informations supplémentaires : Vous pouvez trouver votre IP par bash avec cette commande (cela peut être utile pour les scripts):

dig +short myip.opendns.com @resolver1.opendns.com
Ali Razmdideh
la source
2
@TaraSVolpe Je suis content d'avoir pu vous aider
Ali Razmdideh
2
Cette réponse repose sur la mise en page de ce site Web, tandis que ipinfo.io utilise un format JSON bien défini. Je ne comprends pas pourquoi cette réponse est plus appréciée.
NieDzejkob
2
@NieDzejkob Peut-être parce que ipinfo.io/org ne donne que le numéro AS mais pas le nom du FAI
SebMa
1
@SebMa Lorsque j'ai exécuté la réponse de Byte sur ma machine dans Ubuntu dans Windows 10 (WSL), elle a renvoyé le numéro AS plus le nom du FAI à l'aide curl ipinfo.io/org. Néanmoins, j'ai voté pour les deux réponses et la question parce que tout est bon :)
WinEunuuchs2Unix
@NieDzejkob curl ipinfo.io/orgne produit pas le nom complet de l'AS mais le curl -s ipinfo.io/ASxxx | grep as-namefait :)
SebMa
27

Vous pouvez par exemple utiliser les services de ipinfo.io pour déterminer votre adresse IP publique, y compris des informations supplémentaires telles que le nom de la société fournisseur.

Le site peut normalement être visité dans votre navigateur, mais si vous l'interrogez à partir de la ligne de commande avec, par exemple curl, ils répondent dans un format JSON propre et bien défini afin que vous n'ayez pas besoin d'analyser le 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"
}

Pour n'afficher qu'une seule valeur, vous pouvez envoyer directement une demande au chemin respectif. Par exemple, pour le nom du FAI ( org), essayez ceci:

curl ipinfo.io/org

Inspiré par cette réponse .

Byte Commander
la source
2
Oui, ipinfo est meilleur que whoismyisp en raison de son format JSON +1
Ali Razmdideh
@AliRazmdideh Très magnanime en effet que vous votiez pour que les autres gars répondent :)
WinEunuuchs2Unix
@ WinEunuuchs2Unix Merci, je pense que c'est mieux que le mien.
Ali Razmdideh
1

Je récupère d'abord le numéro du système autonome:

$ curl -s ipinfo.io/org
AS2094 Renater

Ensuite, je récupère le nom complet de cet 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
SebMa
la source
1
Pour moi, ça ne marche pas. Je viens de tester toutes les réponses dans Ubuntu dans Windows 10 (WSL) et Ubuntu 16.04 avec le noyau 4.14.27. Votre option 1 ci-dessus (réponse de Byte) revient AS852 TELUS Communications Inc.. Votre option 2 ci-dessus ne renvoie rien. La réponse acceptée utilise curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'et renvoie, Telus Communicationsqui est une version limitée de la réponse de Byte mais toujours bonne. C'est l'une de ces réponses YMMV (Your Mileage May Vary).
WinEunuuchs2Unix
2
Apparemment, cela dépend du fournisseur ou de ce qu'il ipinfo.orga dans sa collecte de données. Pour moi curl -s ipinfo.io/orgdonne AS3320 Deutsche Telekom AGtout curl -s ipinfo.io/AS3320 | grep as-namedonne DTAG(après un certain temps). En outre, ce dernier analyse à nouveau la sortie HTML (sujette aux erreurs!). Je vais donc m'en tenir à la réponse de ByteCommander.
PerlDuck
@PerlDuck Lorsque j'utilise l'Allemagne, AS3320j'obtiens la même DTAGsortie que vous. Mais je me demande si vous utilisez le Canada, curl -s ipinfo.io/AS852 | grep as-namevous obtenez une sortie nulle comme moi.
WinEunuuchs2Unix
@ WinEunuuchs2Unix Oui, pareil pour moi. Pas de sortie. Je suppose que curl -s ipinfo.io/orgrenvoie des données basées sur l'adresse IP demandeuse tandis que curl -s ipinfo.io/AS3320renvoie des données basées sur le paramètre donné (en ignorant l'adresse IP de la demande). En tous cas. Analyser du HTML sans un analyseur approprié est presque toujours une mauvaise idée. Connaissez-vous cette fameuse réponse sur Stack Overflow ? C'est amusant à lire.
PerlDuck
@PerlDuck C'est une lecture amusante, en particulier tous les personnages étranges à la fin. Pour faire preuve de prudence, j'ai analysé le
WinEunuuchs2Unix