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ę.
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ę.
Odpowiedzi:
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, ale curl -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:
$ 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ą .
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
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 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 mnie curl -s ipinfo.io/org
daje AS3320 Deutsche Telekom AG
chwila curl -s ipinfo.io/AS3320 | grep as-name
daje DTAG
(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 Kanady curl -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, a curl -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ć.