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.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
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/orgnie wyświetla pełnej nazwy AS, ale curl -s ipinfo.io/ASxxx | grep as-namerobi :)
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ą .
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 Communicationsktóra jest ograniczoną wersją odpowiedzi Bajta, ale nadal jest dobra. To jedna z tych odpowiedzi YMMV (Your Mileage May Vary).
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.
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.
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ć.