Quiero usar el nombre de mi proveedor de servicios de Internet en un script, y no sé cómo puedo hacer esto.
Por favor, ayúdame, gracias de antemano.
Quiero usar el nombre de mi proveedor de servicios de Internet en un script, y no sé cómo puedo hacer esto.
Por favor, ayúdame, gracias de antemano.
Respuestas:
Puede usar muchos sitios web, que se proporcionan para encontrar el nombre de su ISP. Uno de ellos es whoismyisp .
Y para obtener su nombre de ISP, en bash script puede obtener este sitio de alguna manera curl
.
curl -s https://www.whoismyisp.org | grep -oP -m1 '(?<=isp">).*(?=</p)'
También puede encontrar el ISP de cualquier IP deseada con este comando:
curl -s https://www.whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP -m1 '(?<=isp">).*(?=</p)'
Esa xxx.xxx.xxx.xxx
es la IP que desea encontrar su ISP.
Información adicional : puede encontrar su IP bash con este comando (eso puede ser útil para los scripts):
dig +short myip.opendns.com @resolver1.opendns.com
curl ipinfo.io/org
. Sin embargo, voté por ambas respuestas y la pregunta porque todo está bien :)
curl ipinfo.io/org
no muestra el nombre completo del AS pero curl -s ipinfo.io/ASxxx | grep as-name
sí :)
Puede utilizar, por ejemplo, los servicios de ipinfo.io para determinar su IP pública, incluida información adicional, como el nombre de la empresa proveedora.
El sitio se puede visitar normalmente en su navegador, pero si lo consulta desde la línea de comandos con curl
, por ejemplo , responden en un formato JSON limpio y bien definido para que no necesite analizar ningún 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"
}
Para mostrar solo un valor, puede enviar directamente una solicitud a la ruta correspondiente. Por ejemplo, para el nombre del ISP ( org
), intente esto:
curl ipinfo.io/org
Inspirado por esta respuesta .
Primero busco el número del Sistema Autónomo:
$ curl -s ipinfo.io/org
AS2094 Renater
Luego busco el nombre completo de ese AS:
$ curl -s ipinfo.io/$(curl -s ipinfo.io/org | corte -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.
. Su opción 2 anterior no devuelve nada. La respuesta aceptada utiliza curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'
y devuelve, Telus Communications
que es una versión limitada de la respuesta de Byte, pero sigue siendo buena. Esta es una de esas respuestas de YMMV (Your Mileage May Vary).
ipinfo.org
tiene en su recopilación de datos. Para mí curl -s ipinfo.io/org
da AS3320 Deutsche Telekom AG
mientras curl -s ipinfo.io/AS3320 | grep as-name
da DTAG
(después de un tiempo). Además, este último vuelve a analizar la salida HTML (¡propensa a errores!). Así que me quedaré con la respuesta de ByteCommander.
AS3320
obtengo el mismo DTAG
resultado que tú. Pero me pregunto si usas Canadá, curl -s ipinfo.io/AS852 | grep as-name
obtienes una salida nula como yo.
curl -s ipinfo.io/org
devuelve datos basados en la IP solicitante mientras que curl -s ipinfo.io/AS3320
devuelve datos basados en el parámetro dado (ignorando la IP de la solicitud). De todas formas. Analizar HTML sin un analizador adecuado es casi siempre una mala idea. ¿Conoces esta famosa respuesta en Stack Overflow ? Es divertido leerlo.