Bagaimana saya bisa menemukan Penyedia Layanan Internet (ISP) saya menggunakan skrip bash?

21

Saya ingin menggunakan nama Penyedia Layanan Internet saya dalam skrip, dan saya tidak tahu bagaimana saya bisa melakukan ini.

Tolong bantu saya, terima kasih sebelumnya.

Tara S Volpe
sumber

Jawaban:

26

Anda dapat menggunakan banyak situs web, yang disediakan untuk menemukan nama ISP Anda. Salah satunya adalah whoismyisp .

Dan untuk mendapatkan nama ISP Anda, dalam skrip bash Anda bisa mendapatkan situs ini dengan sesuatu seperti curl.

curl -s https://www.whoismyisp.org | grep -oP -m1 '(?<=isp">).*(?=</p)'

Anda juga dapat menemukan ISP dari IP yang diinginkan dengan perintah ini:

curl -s https://www.whoismyisp.org/ip/xxx.xxx.xxx.xxx | grep -oP -m1 '(?<=isp">).*(?=</p)'

Itulah xxx.xxx.xxx.xxxIP yang ingin Anda temukan ISP-nya.


Informasi tambahan : Anda dapat menemukan IP Anda dengan bash dengan perintah ini (itu mungkin berguna untuk skrip):

dig +short myip.opendns.com @resolver1.opendns.com
Ali Razmdideh
sumber
2
@TaraSVolpe Saya senang saya bisa membantu Anda
Ali Razmdideh
2
Jawaban ini bergantung pada tata letak situs web ini, sementara ipinfo.io menggunakan format JSON yang terdefinisi dengan baik. Saya tidak mengerti mengapa jawaban ini lebih terangkat.
NieDzejkob
2
@NieDzejkob Mungkin karena ipinfo.io/org hanya memberikan nomor AS tetapi bukan nama ISP
SebMa
1
@SebMa Ketika saya menjalankan jawaban Byte pada mesin saya di Ubuntu pada Windows 10 (WSL), ia mengembalikan nomor AS plus nama ISP yang digunakan curl ipinfo.io/org. Tidak ada yang kurang saya memilih suara baik jawaban dan pertanyaan karena semuanya baik :)
WinEunuuchs2Unix
@NieDzejkob curl ipinfo.io/orgtidak menampilkan nama lengkap AS tetapi curl -s ipinfo.io/ASxxx | grep as-namemelakukan :)
SebMa
27

Anda dapat menggunakan mis. Layanan ipinfo.io untuk menentukan IP publik Anda termasuk beberapa informasi tambahan seperti nama perusahaan penyedia.

Situs ini biasanya dapat dikunjungi di browser Anda, tetapi jika Anda menanyakannya dari command-line dengan eg curl, mereka merespons dalam format JSON yang bersih dan terdefinisi dengan baik sehingga Anda tidak perlu menguraikan HTML apa pun:

$ 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"
}

Untuk hanya menampilkan satu nilai, Anda dapat langsung mengirim permintaan ke jalur masing-masing. Misalnya untuk nama ISP ( org), coba ini:

curl ipinfo.io/org

Terinspirasi oleh jawaban ini .

Komandan Byte
sumber
2
Ya, ipinfo lebih baik daripada whoismyisp karena format JSON-nya 1
Ali Razmdideh
@AliRazmdideh Sungguh sangat murah hati bahwa Anda membesarkan hati orang lain menjawab :)
WinEunuuchs2Unix
@ WinEunuuchs2Unix Terima kasih, saya pikir ini lebih baik daripada milik saya.
Ali Razmdideh
1

Pertama saya mengambil nomor Sistem Otonomi:

$ curl -s ipinfo.io/org
AS2094 Renater

Lalu saya mengambil nama lengkap AS itu:

$ 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
SebMa
sumber
1
Bagi saya itu tidak berfungsi. Saya baru saja menguji semua jawaban di Ubuntu pada Windows 10 (WSL) dan Ubuntu 16.04 dengan Kernel 4.14.27. Pilihan Anda 1 di atas (jawaban Byte) kembali AS852 TELUS Communications Inc.. Pilihan Anda 2 di atas tidak menghasilkan apa-apa. Jawaban yang diterima menggunakan curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'dan mengembalikan Telus Communicationsyang merupakan versi terbatas dari jawaban Byte tetapi masih bagus. Ini adalah salah satu jawaban YMMV (Your Mileage May Vary).
WinEunuuchs2Unix
2
Tampaknya itu tergantung pada penyedia atau pada apa yang ipinfo.orgada dalam pengumpulan data mereka. Bagi saya curl -s ipinfo.io/orgmemberi AS3320 Deutsche Telekom AGsambil curl -s ipinfo.io/AS3320 | grep as-namememberi DTAG(setelah beberapa saat). Selain itu, yang terakhir adalah penguraian kembali hasil HTML (rawan kesalahan!). Jadi saya akan tetap dengan jawaban ByteCommander.
PerlDuck
@PerlDuck Ketika saya menggunakan Jerman, AS3320saya mendapatkan DTAGoutput yang sama dengan yang Anda dapatkan. Tapi saya ingin tahu apakah Anda menggunakan Kanada, curl -s ipinfo.io/AS852 | grep as-nameAnda mendapatkan output nol seperti saya.
WinEunuuchs2Unix
@ WinEunuuchs2Unix Ya, sama untuk saya. Tidak ada output. Saya rasa curl -s ipinfo.io/orgmengembalikan data berdasarkan IP yang diminta, sementara curl -s ipinfo.io/AS3320mengembalikan data berdasarkan parameter yang diberikan (mengabaikan IP permintaan). Bagaimanapun. Parsing HTML tanpa parser yang tepat hampir selalu merupakan ide yang buruk. Apakah Anda tahu jawaban terkenal ini tentang Stack Overflow ? Sangat menyenangkan untuk dibaca.
PerlDuck
@PerlDuck Ini menyenangkan membaca terutama semua karakter aneh di akhir. Melemparkan hati ke angin saya melakukan parse kode HTML di bash: askubuntu.com/questions/900319/…
WinEunuuchs2Unix