wget -qO- 'http://xml.utrace.de/?query=google.ru' | \ sed -e '/^<\/\?result\|^<?xml\|^<queries/d;s/<\/.\+>$//g;s/^<//g;s/>/\t\t: /g;s/\(^countrycode\|^latitude\|^longitude\)\t/\1/g'Но все же это не совсем удобно. Вначале запускаю этот однострочник, потом whois, а потом, если вдруг приспичит глянуть, где стоит сервак интересуемого меня домен, то надо лезть на utrace. Не удобно в общем...
Поэтому сегодня решил "скрестить" все это дело в один скрипт. И вот что получилось:
#!/bin/bash GEO=`wget -qO- 'http://xml.utrace.de/?query='$1 | \ sed -e '/^<\/\?result\|^<?xml\|^<queries/d;s/<\/.\+>$//g;s/^<//g;s/>/\t\t: /g;s/\(^countrycode\|^latitude\|^longitude\)\t/\1/g'` echo "$GEO" | tr ':' ' ' REG=`echo "$GEO" | awk -F':' '/^region/ {print $2}'` LAT=`echo "$GEO" | awk -F':' '/^latitude/ {print $2}'` LONG=`echo "$GEO" | awk -F':' '/^longitude/ {print $2}'` whois $1 | sed 's/\ \+//g;s/^\(org:\)/\1/' | \ awk -F':' '/^nserver|^org:|^registar|^created|^paid|^inetnum|^netname|^descr|^organisation|^org-name|^address|^e-mail|^person|^route/ {print $1"\t\t "$2}' | \ sed 's/\(^organisation\|^org-name\|^paid-till\)\t/\1/' echo -ne "google map\t " echo 'http://maps.google.com/maps?f=q&source=s_q&hl=ru&ie=UTF8&hq=&t=h&z=11&sll='$LAT','$LONG'&q='$REG | sed 's/\ \+//g' echo -ne "url\t\t http://en.utrace.de/?query=$1\n"
После отработки скрипт выдаст примерно след. информацию:
$ geo google.ru ip 74.125.39.147 host google.ru isp Google org Google region Mountain View countrycode US latitude 37.4192008972 longitude -122.057403564 nserver ns1.google.com. nserver ns2.google.com. nserver ns3.google.com. nserver ns4.google.com. org GoogleInc e-mail dns-admin@google.com e-mail ccops@markmonitor.com created 2004.03.04 paid-till 2011.03.05 google map http://maps.google.com/maps?f=q&source=s_q&hl=ru&ie=UTF8&hq=&t=h&z=11&sll=37.4192008972,-122.057403564&q=MountainView url http://en.utrace.de/?query=google.ruЗаодно и ссылки на карту сразу под рукой ;)
Информация с сайта http://angel2s2.blogspot.com/.
2 коммент.:
Интересное решение, но GEO регулярка не работает:
sed: -e expression #1, char 19: unknown command: `/'
ОС - убунту
Если бы я делал, но наверное делал бы с xpath. К примеру:
wget -qO- http://xml.utrace.de/?query=sablog.ru|xpath -q -e 'results/result/ip/text()'
Спасибо. Исправил :)
Допустил 2 косяка (хотя один не мой):
1. Забыл, что внутри одиночных кавычек нельзя делать перенос строк с помощью обратного слеша (\).
2. То ли blogger, то ли hightlighter порезал часть символов.
Отправить комментарий