Як я можу знайти свого Інтернет-провайдера (ISP) за допомогою bash-скрипту?


21

Я хочу використовувати ім'я свого провайдера Інтернет-послуг у сценарії, і я не знаю, як це зробити.

Будь ласка, допоможіть мені, дякую заздалегідь.

Відповіді:


26

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

А щоб отримати своє ім’я провайдера, в bash script ви можете отримати цей сайт чимось на кшталт 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

2
@TaraSVolpe Я радий, що можу вам допомогти
Алі Размдіде

2
Ця відповідь покладається на макет цього веб-сайту, тоді як ipinfo.io використовує чітко визначений формат JSON. Я не розумію, чому ця відповідь більш прихильна.
NieDzejkob

2
@NieDzejkob Можливо тому, що ipinfo.io/org дають лише номер AS, але не ім'я провайдера
SebMa

1
@SebMa Коли я запустив відповідь Байта на своїй машині в Ubuntu в Windows 10 (WSL), він повернув номер AS плюс ім'я провайдера, використовуючи curl ipinfo.io/org. Я не відповідав і на відповіді, і на питання, бо це все добре :)
WinEunuuchs2Unix

@NieDzejkob curl ipinfo.io/orgне виводить повну назву AS, але curl -s ipinfo.io/ASxxx | grep as-nameце так :)
SebMa

27

Ви можете використовувати, наприклад, послуги ipinfo.io для визначення вашого загальнодоступного ІР, включаючи деяку додаткову інформацію, наприклад, назву компанії постачальника.

Сайт можна звичайно відвідувати у вашому браузері, але якщо ви запитуєте його з командного рядка, наприклад 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"
}

Щоб показати лише одне значення, ви можете безпосередньо надіслати запит у відповідний шлях. Наприклад, ім’я провайдера ( org), спробуйте:

curl ipinfo.io/org

Натхненний цією відповіддю .


2
Так, ipinfo краще, ніж whoismyisp через його формат JSON +1
Алі Размдіде

@AliRazmdideh Дуже великодушно, що ти відповідав на відповідь інших хлопців :)
WinEunuuchs2Unix

@ WinEunuuchs2Unix Спасибі, я думаю, що це краще, ніж моє.
Алі Размдідех

1

Спочатку я отримую номер Автономної системи:

$ curl -s ipinfo.io/org
AS2094 Renater

Тоді я отримую повне ім'я цього AS:

$ curl -s ipinfo.io/$(curl -s ipinfo.io/org | вирізати -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
Для мене це не працює. Я просто перевірив усі відповіді як у 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

2
Мабуть, це залежить від провайдера або від того, що ipinfo.orgє у їхньому зборі даних. Для мене curl -s ipinfo.io/orgдає, AS3320 Deutsche Telekom AGхоча curl -s ipinfo.io/AS3320 | grep as-nameдає DTAG(через деякий час). Крім того, останній знову аналізує вихід HTML (схильний до помилок!). Тож я буду дотримуватися відповіді ByteCommander.
PerlDuck

@PerlDuck Коли я використовую Німеччину, AS3320я отримую той самий DTAGвихід, який ви отримуєте. Але мені цікаво, якщо ви використовуєте Канаду, curl -s ipinfo.io/AS852 | grep as-nameви отримуєте нульовий результат, як я.
WinEunuuchs2Unix

@ WinEunuuchs2Unix Так, для мене те саме. Виходу немає Я вважаю, що curl -s ipinfo.io/orgповертає дані на основі запитувальної IP-адреси, тоді як curl -s ipinfo.io/AS3320повертає дані на основі заданого параметра (ігноруючи IP-адресу запиту). Все одно. Розбір HTML без належного аналізатора майже завжди є поганою ідеєю. Чи знаєте ви цю відому відповідь про переповнення стека ? Це цікаво читати.
PerlDuck

@PerlDuck Це цікаве читання, особливо всі дивні персонажі в кінці. Кидаючи обережність на вітер, я розбирав
WinEunuuchs2Unix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.