четверг, 21 октября 2010 г.

Скрипт для получения информации о домене

Периодически мне бывает нужно получить информацию о каком-либо домене. Для этого я обычно использую utrace и whois. Но это как-то не очень удобно, хотелось все в консольке видеть. Поэтому был набросан однострочник, который выводил инфу с utrace на терминал:
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 комментария:

  1. Интересное решение, но 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. Спасибо. Исправил :)

    Допустил 2 косяка (хотя один не мой):
    1. Забыл, что внутри одиночных кавычек нельзя делать перенос строк с помощью обратного слеша (\).
    2. То ли blogger, то ли hightlighter порезал часть символов.

    ОтветитьУдалить