bashスクリプトを使用して、インターネットサービスプロバイダー(ISP)を見つけるにはどうすればよいですか?


21

インターネットサービスプロバイダーの名前をスクリプトで使用したいのですが、どうすればよいのかわかりません。

私を助けてください、事前に感謝します。

回答:


26

ISP名を見つけるために提供されている多くのWebサイトを使用できます。それらの1つはwhoismyispです。

また、ISP名を取得するには、bashスクリプトでのようなものでこのサイトを取得できますcurl

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

また、次のコマンドを使用して、必要なIPのISPを見つけることができます。

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

ザッツは、xxx.xxx.xxx.xxxIPを使用すると、そのISPを見つけたいということです。


追加情報:このコマンドを使用してbashでIPを見つけることができます(スクリプトに役立つ場合があります)。

dig +short myip.opendns.com @resolver1.opendns.com

2
@TaraSVolpe私はあなたを助けることができてうれしいです
アリRazmdideh

2
この答えはこのウェブサイトのレイアウトに依存していますが、ipinfo.ioは明確に定義されたJSON形式を使用しています。この答えがより支持されている理由がわかりません。
NieDzejkob

2
@nieDzejkobたぶん、ipinfo.io / orgはAS番号のみを提供し、ISPの名前は提供しないため
SebMa

1
@SebMa Windows 10(WSL)のUbuntuのマシンでByteの回答を実行すると、AS番号とISP名を使用してを使用して返されましたcurl ipinfo.io/org。それにも
かかわら

@NieDzejkob curl ipinfo.io/orgはASのフルネームを出力しませんが、出力curl -s ipinfo.io/ASxxx | grep as-nameします:)
SebMa

27

たとえば、ipinfo.ioのサービスを使用して、プロバイダーの会社名などの追加情報を含むパブリックIPを決定できます。

通常、サイトはブラウザでアクセスできますが、コマンドラインからクエリを実行する場合、たとえばcurl、HTMLを解析する必要がないように、明確で明確に定義されたJSON形式で応答します。

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

1つの値のみを表示するために、それぞれのパスにリクエストを直接送信できます。たとえば、ISP名(org)の場合、これを試してください:

curl ipinfo.io/org

この答えに触発されました


2
はい、ipinfoは、そのJSON形式+1のwhoismyispよりも優れている
アリRazmdideh

@AliRazmdidehあなたが他の人の答えに
賛成

@ WinEunuuchs2Unixありがとう、私よりはましだと思う。
アリラズムディデ

1

最初に、自律システム番号を取得します。

$ 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
私にとっては機能していません。Windows 10のUbuntu(WSL)とカーネル4.14.27を使用したUbuntu 16.04の両方ですべての回答をテストしました。上記のオプション1(バイトの答え)はを返します AS852 TELUS Communications Inc.。上記のオプション2は何も返しません。受け入れられた回答はcurl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'Telus CommunicationsByteの回答の限定バージョンですが、まだ使用されています。これはYMMV(マイレージメイヴァリ)の回答の1つです。
WinEunuuchs2Unix

2
どうやら、それはプロバイダーまたはipinfo.org彼らのデータコレクションに依存しているようです。私にとってcurl -s ipinfo.io/orgAS3320 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を解析することは、ほとんど常に悪い考えです。Stack Overflowに関するこの有名な答えを知っていますか?読むのは楽しいです。
PerlDuck

@PerlDuckそれは特に最後にすべての奇妙なキャラクターを読んで楽しいです。風に注意を投げ、私はbashで解析HTMLコードをした:askubuntu.com/questions/900319/...
WinEunuuchs2Unix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.