Я хочу использовать имя моего интернет-провайдера в сценарии, и я не знаю, как я могу это сделать.
Пожалуйста, помогите мне, спасибо заранее.
Вы можете использовать множество веб-сайтов, которые предназначены для поиска вашего имени провайдера. Одним из них является whoismyisp .
А для получения вашего имени провайдера, в bash-скрипте вы можете получить этот сайт чем-то вроде curl
.
curl -s https://www.whoismyisp.org | grep -oP -m1 '(?<=isp">).*(?=</p)'
Также вы можете найти ISP любого желаемого IP с этой командой:
curl -s https://www.whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP -m1 '(?<=isp">).*(?=</p)'
То xxx.xxx.xxx.xxx
есть тот IP, который вы хотите найти у своего провайдера.
Дополнительная информация : Вы можете найти свой IP с помощью bash с помощью этой команды (это может быть полезно для скриптов):
dig +short myip.opendns.com @resolver1.opendns.com
curl ipinfo.io/org
. Тем не менее я проголосовал за оба ответа и за вопрос, потому что все хорошо :)curl ipinfo.io/org
не выводит полное имя AS, ноcurl -s ipinfo.io/ASxxx | grep as-name
Вы можете использовать, например, услуги ipinfo.io для определения вашего публичного IP- адреса, включая некоторую дополнительную информацию, такую как название компании-поставщика.
Сайт обычно можно посещать в вашем браузере, но если вы запрашиваете его из командной строки, например
curl
, они отвечают в чистом и четко определенном формате JSON, так что вам не нужно анализировать HTML:Чтобы показать только одно значение, вы можете напрямую отправить запрос по соответствующему пути. Например, для имени провайдера (
org
), попробуйте это:Вдохновлен этим ответом .
источник
Сначала я выбираю номер автономной системы:
Затем я получаю полное имя этого AS:
$ curl -s ipinfo.io/$(curl -s ipinfo.io/org | cut -d "" -f1) | awk '/ as-name / {print $ NF}'источник
AS852 TELUS Communications Inc.
. Ваш вариант 2 выше ничего не возвращает. Принятый ответ используетcurl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'
и возвращает,Telus Communications
что является ограниченной версией ответа байта, но все же хорошо. Это один из тех ответов YMMV (ваш пробег может меняться).ipinfo.org
имеет в их сборе данных. Для меняcurl -s ipinfo.io/org
дает,AS3320 Deutsche Telekom AG
покаcurl -s ipinfo.io/AS3320 | grep as-name
даетDTAG
(через некоторое время). Кроме того, последний снова анализирует вывод HTML (подвержен ошибкам!). Поэтому я буду придерживаться ответа ByteCommander.AS3320
я получаю тот жеDTAG
результат, что и вы. Но мне интересно, если вы используете Канаду,curl -s ipinfo.io/AS852 | grep as-name
вы получите нулевой результат, как я.curl -s ipinfo.io/org
возвращает данные на основе запрашивающего IP, аcurl -s ipinfo.io/AS3320
возвращает данные на основе заданного параметра (игнорируя IP-адрес запроса). Так или иначе. Разбор HTML без правильного парсера - почти всегда плохая идея. Вы знаете этот знаменитый ответ о переполнении стека ? Это весело читать.