Как я могу найти своего интернет-провайдера (ISP) с помощью сценария bash?

Я хочу использовать имя своего интернет-провайдера в скрипте, и я не знаю, как это сделать.

Пожалуйста, помогите мне, спасибо заранее.

21
задан 22 September 2017 в 16:09

9 ответов

Вы можете использовать многие веб-сайты, которые предоставляются для поиска вашего имени поставщика услуг Интернета. Один из них - whoismyisp.

И для получения вашего имени ISP в скрипте bash вы можете получить этот сайт с помощью чего-то вроде curl.

curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'

Также вы можете найти ISP любых желаемых IP-адресов с помощью этой команды:

curl -s https://www.whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP '\bisp">\K[^<]+'

Thats xxx.xxx.xxx.xxx - это тот IP-адрес, который вы хотите найти у своего провайдера.

Дополнительная информация: You может найти ваш IP by bash с помощью этой команды (это может быть полезно для скриптов):

dig +short myip.opendns.com @resolver1.opendns.com
25
ответ дан 22 May 2018 в 18:13
  • 1
    @TaraSVolpe Я рад, что смогу помочь вам – Ali Razmdideh 22 September 2017 в 16:11
  • 2
    Этот ответ основывается на макете этого сайта, в то время как ipinfo.io использует четко определенный формат JSON. Я не понимаю, почему этот ответ более высок. – NieDzejkob 23 September 2017 в 18:16
  • 3
    @NieDzejkob Возможно, потому что ipinfo.io/org дает только номер AS, но не имя ISP – SebMa 30 March 2018 в 20:31
  • 4
    @SebMa Когда я выполнил ответ Байта на моей машине в Ubuntu в Windows 10 (WSL), он вернул номер AS плюс имя ISP, используя curl ipinfo.io/org. Тем не менее, я проголосовал за оба ответа и вопрос, потому что это все хорошо :) – WinEunuuchs2Unix 30 March 2018 в 20:44
  • 5
    @NieDzejkob curl ipinfo.io/org не выводит полное имя AS, но curl -s ipinfo.io/ASxxx | grep as-name делает :) – SebMa 30 March 2018 в 20:49

Вы можете использовать многие веб-сайты, которые предоставляются для поиска вашего имени поставщика услуг Интернета. Один из них - whoismyisp.

И для получения вашего имени ISP в скрипте bash вы можете получить этот сайт с помощью чего-то вроде curl.

curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'

Также вы можете найти ISP любых желаемых IP-адресов с помощью этой команды:

curl -s https://www.whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP '\bisp">\K[^<]+'

Thats xxx.xxx.xxx.xxx - это тот IP-адрес, который вы хотите найти у своего провайдера.

Дополнительная информация: You может найти ваш IP by bash с помощью этой команды (это может быть полезно для скриптов):

dig +short myip.opendns.com @resolver1.opendns.com
25
ответ дан 18 July 2018 в 06:24

Вы можете использовать многие веб-сайты, которые предоставляются для поиска вашего имени поставщика услуг Интернета. Один из них - whoismyisp.

И для получения вашего имени ISP в скрипте bash вы можете получить этот сайт с помощью чего-то вроде curl.

curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'

Также вы можете найти ISP любых желаемых IP-адресов с помощью этой команды:

curl -s https://www.whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP '\bisp">\K[^<]+'

Thats xxx.xxx.xxx.xxx - это тот IP-адрес, который вы хотите найти у своего провайдера.

Дополнительная информация: You может найти ваш IP by bash с помощью этой команды (это может быть полезно для скриптов):

dig +short myip.opendns.com @resolver1.opendns.com
25
ответ дан 24 July 2018 в 18:35

Вы можете использовать, например. службы ipinfo.io, чтобы определить ваш публичный IP-адрес, включая некоторую дополнительную информацию, такую ​​как название компании-поставщика.

Сайт можно нормально посещать в вашем браузере, но если вы запросите его из командной строки, например, curl, они отвечают в чистом и четко определенном формате JSON, так что вам не нужно анализировать любой 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"
}

Чтобы показывать только одно значение, вы можете напрямую отправить запрос на соответствующий путь. Например. для имени ISP (org) попробуйте следующее:

curl ipinfo.io/org

Вдохновленный ipinfo.io .

24
ответ дан 22 May 2018 в 18:13
  • 1
    Да, ipinfo лучше, чем whoismyisp из-за его формата JSON +1 – Ali Razmdideh 30 March 2018 в 20:55

Сначала я выбираю номер автономной системы:

$ curl -s ipinfo.io/org
AS2094 Renater

Затем я получаю полное имя этого 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
ответ дан 22 May 2018 в 18:13
  • 1
    Для меня это не работает. Я просто тестировал все ответы в Ubuntu в Windows 10 (WSL) и Ubuntu 16.04 с помощью ядра 4.14.27. Ваш вариант 1 выше (ответ Байта) возвращает AS852 TELUS Communications Inc.. Ваш вариант 2 выше ничего не возвращает. В принятом ответе используется curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+' и возвращается Telus Communications, который является ограниченной версией ответа Байта, но все же хорош. Это один из тех ответов YMMV (ваш пробег Май-Вар). – WinEunuuchs2Unix 30 March 2018 в 21:02
  • 2
    По-видимому, это зависит от поставщика или от того, что ipinfo.org имеет в своем сборе данных. Для меня curl -s ipinfo.io/org дает AS3320 Deutsche Telekom AG, а curl -s ipinfo.io/AS3320 | grep as-name дает DTAG (через некоторое время). Кроме того, последний снова анализирует вывод HTML (подвержен ошибкам!). Поэтому я буду придерживаться ответа ByteCommander. – PerlDuck 30 March 2018 в 21:03
  • 3
    @PerlDuck Когда я использую немецкий AS3320, я получаю тот же выход DTAG, который вы получаете. Но мне интересно, используете ли вы curl -s ipinfo.io/AS852 | grep as-name в Канаде, вы получаете нулевой вывод, как я. – WinEunuuchs2Unix 30 March 2018 в 21:07
  • 4
    @ WinEunuuchs2Unix Да, то же самое для меня. Нет выхода. Я считаю, curl -s ipinfo.io/org возвращает данные на основе запрашивающего IP, тогда как curl -s ipinfo.io/AS3320 возвращает данные на основе данного параметра (игнорируя IP-адрес запроса). Так или иначе. Анализ HTML без правильного парсера - почти всегда плохая идея. Знаете ли вы этот знаменитый ответ на Stack Overflow ? Это интересно читать. – PerlDuck 30 March 2018 в 21:23
  • 5
    @PerlDuck Это весело читать особенно все странные символы в конце. Бросив осторожность на ветер, я проанализировал HTML-код в bash: askubuntu.com/questions/900319/… – WinEunuuchs2Unix 30 March 2018 в 21:40

Вы можете использовать, например. службы ipinfo.io, чтобы определить ваш публичный IP-адрес, включая некоторую дополнительную информацию, такую ​​как название компании-поставщика.

Сайт можно нормально посещать в вашем браузере, но если вы запросите его из командной строки, например, curl, они отвечают в чистом и четко определенном формате JSON, так что вам не нужно анализировать любой 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" }

Чтобы показывать только одно значение, вы можете напрямую отправить запрос на соответствующий путь. Например. для имени ISP (org) попробуйте следующее:

curl ipinfo.io/org

Вдохновленный ipinfo.io .

25
ответ дан 18 July 2018 в 06:24

Сначала я выбираю номер автономной системы:

$ curl -s ipinfo.io/org AS2094 Renater

Затем я получаю полное имя этого 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
ответ дан 18 July 2018 в 06:24

Вы можете использовать, например. службы ipinfo.io, чтобы определить ваш публичный IP-адрес, включая некоторую дополнительную информацию, такую ​​как название компании-поставщика.

Сайт можно нормально посещать в вашем браузере, но если вы запросите его из командной строки, например, curl, они отвечают в чистом и четко определенном формате JSON, так что вам не нужно анализировать любой 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" }

Чтобы показывать только одно значение, вы можете напрямую отправить запрос на соответствующий путь. Например. для имени ISP (org) попробуйте следующее:

curl ipinfo.io/org

Вдохновленный ipinfo.io .

26
ответ дан 24 July 2018 в 18:35
  • 1
    Да, ipinfo лучше, чем whoismyisp из-за его формата JSON +1 – Ali Razmdideh 30 March 2018 в 20:55

Сначала я выбираю номер автономной системы:

$ curl -s ipinfo.io/org AS2094 Renater

Затем я получаю полное имя этого 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
ответ дан 24 July 2018 в 18:35
  • 1
    Для меня это не работает. Я просто тестировал все ответы в Ubuntu в Windows 10 (WSL) и Ubuntu 16.04 с помощью ядра 4.14.27. Ваш вариант 1 выше (ответ Байта) возвращает AS852 TELUS Communications Inc.. Ваш вариант 2 выше ничего не возвращает. В принятом ответе используется curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+' и возвращается Telus Communications, который является ограниченной версией ответа Байта, но все же хорош. Это один из тех ответов YMMV (ваш пробег Май-Вар). – WinEunuuchs2Unix 30 March 2018 в 21:02
  • 2
    По-видимому, это зависит от поставщика или от того, что ipinfo.org имеет в своем сборе данных. Для меня curl -s ipinfo.io/org дает AS3320 Deutsche Telekom AG, а curl -s ipinfo.io/AS3320 | grep as-name дает DTAG (через некоторое время). Кроме того, последний снова анализирует вывод HTML (подвержен ошибкам!). Поэтому я буду придерживаться ответа ByteCommander. – PerlDuck 30 March 2018 в 21:03
  • 3
    @PerlDuck Когда я использую немецкий AS3320, я получаю тот же выход DTAG, который вы получаете. Но мне интересно, используете ли вы curl -s ipinfo.io/AS852 | grep as-name в Канаде, вы получаете нулевой вывод, как я. – WinEunuuchs2Unix 30 March 2018 в 21:07
  • 4
    @ WinEunuuchs2Unix Да, то же самое для меня. Нет выхода. Я считаю, curl -s ipinfo.io/org возвращает данные на основе запрашивающего IP, тогда как curl -s ipinfo.io/AS3320 возвращает данные на основе данного параметра (игнорируя IP-адрес запроса). Так или иначе. Анализ HTML без правильного парсера - почти всегда плохая идея. Знаете ли вы этот знаменитый ответ на Stack Overflow ? Это интересно читать. – PerlDuck 30 March 2018 в 21:23
  • 5
    @PerlDuck Это весело читать особенно все странные символы в конце. Бросив осторожность на ветер, я проанализировал HTML-код в bash: askubuntu.com/questions/900319/… – WinEunuuchs2Unix 30 March 2018 в 21:40

Другие вопросы по тегам:

Похожие вопросы: