Я хочу використовувати ім'я свого провайдера Інтернет-послуг у сценарії, і я не знаю, як це зробити.
Будь ласка, допоможіть мені, дякую заздалегідь.
Я хочу використовувати ім'я свого провайдера Інтернет-послуг у сценарії, і я не знаю, як це зробити.
Будь ласка, допоможіть мені, дякую заздалегідь.
Відповіді:
Ви можете використовувати багато веб-сайтів, які надаються для пошуку вашого імені провайдера. Одним з них є 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
curl ipinfo.io/org. Я не відповідав і на відповіді, і на питання, бо це все добре :)
curl ipinfo.io/orgне виводить повну назву AS, але curl -s ipinfo.io/ASxxx | grep as-nameце так :)
Ви можете використовувати, наприклад, послуги 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
Натхненний цією відповіддю .
Спочатку я отримую номер Автономної системи:
$ 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
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 без належного аналізатора майже завжди є поганою ідеєю. Чи знаєте ви цю відому відповідь про переповнення стека ? Це цікаво читати.