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ę.
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.xxx
jest 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
curl ipinfo.io/org
. Niemniej jednak podniosłem głos zarówno na odpowiedzi, jak i na pytanie, ponieważ wszystko jest w porządku :)curl ipinfo.io/org
nie wyświetla pełnej nazwy AS, alecurl -s ipinfo.io/ASxxx | grep as-name
robi :)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ą
curl
w czystym i dobrze zdefiniowanym formacie JSON, dzięki czemu nie musisz analizować żadnego kodu HTML: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:Zainspirowany tą odpowiedzią .
źródło
Najpierw pobieram numer systemu autonomicznego:
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}'źródło
AS852 TELUS Communications Inc.
. Twoja opcja 2 powyżej nic nie zwraca. Zaakceptowana odpowiedź wykorzystujecurl -s https://www.whoismyisp.org | grep -oP '\bisp">\K[^<]+'
i zwraca,Telus Communications
która jest ograniczoną wersją odpowiedzi Bajta, ale nadal jest dobra. To jedna z tych odpowiedzi YMMV (Your Mileage May Vary).ipinfo.org
ma w swoich zbiorach danych. Dla mniecurl -s ipinfo.io/org
dajeAS3320 Deutsche Telekom AG
chwilacurl -s ipinfo.io/AS3320 | grep as-name
dajeDTAG
(po chwili). Również ten drugi analizuje dane wyjściowe HTML (podatne na błędy!). Więc pozostanę przy odpowiedzi ByteCommander.AS3320
otrzymuję taką samąDTAG
wydajność jak ty. Ale zastanawiam się, czy jeśli użyjesz Kanadycurl -s ipinfo.io/AS852 | grep as-name
, uzyskasz zerową wydajność, tak jak ja.curl -s ipinfo.io/org
zwraca dane na podstawie żądającego adresu IP, acurl -s ipinfo.io/AS3320
zwraca 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ć.