Jak mogę znaleźć mojego dostawcę usług internetowych (ISP) za pomocą skryptu bash?

21

Chcę użyć nazwy mojego dostawcy usług internetowych w skrypcie i nie wiem, jak to zrobić.

Proszę o pomoc, z góry dziękuję.

Tara S Volpe
źródło

Odpowiedzi:

26

Możesz użyć wielu stron internetowych, które podają, aby znaleźć Twoją nazwę dostawcy usług internetowych. Jednym z nich jest whoismyisp .

Aby uzyskać nazwę swojego usługodawcy internetowego, w skrypcie bash możesz uzyskać tę witrynę w podobny sposób curl.

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

Za pomocą tego polecenia możesz również znaleźć ISP dowolnych adresów IP:

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

To xxx.xxx.xxx.xxxjest ten adres IP, który chcesz znaleźć dla swojego dostawcy usług internetowych.


Informacje dodatkowe : Możesz znaleźć swój adres IP przez bash za pomocą tego polecenia (może to być pomocne w skryptach):

dig +short myip.opendns.com @resolver1.opendns.com
Ali Razmdideh
źródło
2
@TaraSVolpe Cieszę się, że mogłem pomóc
Ali Razmdideh
2
Ta odpowiedź zależy od układu tej strony, a ipinfo.io używa dobrze zdefiniowanego formatu JSON. Nie rozumiem, dlaczego ta odpowiedź jest bardziej pozytywna.
NieDzejkob,
2
@NieDzejkob Może dlatego, że ipinfo.io/org podaje tylko numer AS, ale nie podaje nazwy ISP
SebMa
1
@SebMa Kiedy uruchomiłem odpowiedź Byte na moim komputerze w Ubuntu w Windows 10 (WSL), zwrócił numer AS plus nazwę dostawcy usług internetowych curl ipinfo.io/org. Niemniej jednak podniosłem głos zarówno na odpowiedzi, jak i na pytanie, ponieważ wszystko jest w porządku :)
WinEunuuchs2Unix 30'18
@NieDzejkob curl ipinfo.io/orgnie wyświetla pełnej nazwy AS, ale curl -s ipinfo.io/ASxxx | grep as-namerobi :)
SebMa 30.03.18
27

Możesz użyć np. Usług ipinfo.io, aby określić swój publiczny adres IP, w tym dodatkowe informacje, takie jak nazwa firmy dostawcy.

Witrynę można normalnie odwiedzać w przeglądarce, ale jeśli zapytasz ją za pomocą wiersza polecenia, np. Odpowiedzą curlw czystym i dobrze zdefiniowanym formacie JSON, dzięki czemu nie musisz analizować żadnego kodu 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"
}

Aby wyświetlić tylko jedną wartość, możesz bezpośrednio wysłać żądanie do odpowiedniej ścieżki. Np. W przypadku nazwy ISP ( org) spróbuj:

curl ipinfo.io/org

Zainspirowany tą odpowiedzią .

Bajt Dowódca
źródło
2
Tak, ipinfo jest lepszy niż whoismyisp ze względu na jego format JSON +1
Ali Razmdideh
@AliRazmdideh Naprawdę wspaniałomyślne, że głosujesz za odpowiedzą pozostałych facetów :)
WinEunuuchs2Unix
@ WinEunuuchs2Unix Dzięki, myślę, że to lepsze niż moje.
Ali Razmdideh
1

Najpierw pobieram numer systemu autonomicznego:

$ curl -s ipinfo.io/org
AS2094 Renater

Następnie pobieram pełną nazwę tego 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
SebMa
źródło
1
Dla mnie to nie działa. Właśnie przetestowałem wszystkie odpowiedzi zarówno w systemie Ubuntu w systemie Windows 10 (WSL), jak i Ubuntu 16.04 z jądrem 4.14.27. Twoja opcja 1 powyżej (odpowiedź Bajta) powraca AS852 TELUS Communications Inc.. Twoja opcja 2 powyżej nic nie zwraca. Zaakceptowana odpowiedź wykorzystuje curl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'i zwraca, Telus Communicationsktóra jest ograniczoną wersją odpowiedzi Bajta, ale nadal jest dobra. To jedna z tych odpowiedzi YMMV (Your Mileage May Vary).
WinEunuuchs2Unix
2
Najwyraźniej zależy to od dostawcy lub tego, co ipinfo.orgma w swoich zbiorach danych. Dla mnie curl -s ipinfo.io/orgdaje AS3320 Deutsche Telekom AGchwila curl -s ipinfo.io/AS3320 | grep as-namedaje DTAG(po chwili). Również ten drugi analizuje dane wyjściowe HTML (podatne na błędy!). Więc pozostanę przy odpowiedzi ByteCommander.
PerlDuck
@PerlDuck Kiedy korzystam z Niemiec, AS3320otrzymuję taką samą DTAGwydajność jak ty. Ale zastanawiam się, czy jeśli użyjesz Kanady curl -s ipinfo.io/AS852 | grep as-name, uzyskasz zerową wydajność, tak jak ja.
WinEunuuchs2Unix
@ WinEunuuchs2Unix Tak, to samo dla mnie. Brak danych wyjściowych. Liczę, że curl -s ipinfo.io/orgzwraca dane na podstawie żądającego adresu IP, a curl -s ipinfo.io/AS3320zwraca dane na podstawie podanego parametru (ignorując adres IP żądania). Tak czy inaczej. Analizowanie HTML bez odpowiedniego parsera jest prawie zawsze złym pomysłem. Czy znasz tę słynną odpowiedź na temat przepełnienia stosu ? Fajnie jest czytać.
PerlDuck
@PerlDuck Jest to zabawna lektura, zwłaszcza wszystkie dziwne postacie na końcu. Rzucając ostrożność na wiatr, parsowałem
WinEunuuchs2Unix 30'18