Конференция "Сети" » Модуль Whois, определение города и оператора связи по ip-ку. [D7, WinXP]
 
  • YurikGL © (11.05.10 10:44) [0]
    Может кто делал? Что бы можно было для набора ip-в вычислить город и оператора связи. Ну или хотя бы просто вернуть текст аналогичный возвращаемому службой http://www.ripe.net/perl/whois
  • Anatoly Podgoretsky © (11.05.10 11:52) [1]
    > YurikGL  (11.05.2010 10:44:00)  [0]

    Оставь надежду. Во первых там там написано то, что захотел регистрант,
    например я одно время находился в Калифорнии, а потом в Таллине, что не
    соответствует действительности и так же по другим полям. Во вторых можно
    ничего не найти, например мой домен не находит. Ну а в третьих WHOIS
    компонент много написано, попробуй поискать на Торри.
  • Anatoly Podgoretsky © (11.05.10 11:54) [2]
    > Anatoly Podgoretsky  (11.05.2010 11:52:01)  [1]

    Ну и ты наверно догадываешься, что я вхожу в The RIPE NCC Service Region
  • YurikGL © (11.05.10 12:09) [3]

    > Ну а в третьих WHOIS
    > компонент много написано, попробуй поискать на Торри.

    Там из три.
    Одно с первого же пинка не запустилось, одно платное, а еще одно показывает географическое расположение.
    Будут копать.

    Но если есть готовые решения - буду рад
  • YurikGL © (11.05.10 12:11) [4]

    > Оставь надежду. Во первых там там написано то, что захотел
    > регистрант,
    > например я одно время находился в Калифорнии, а потом в
    > Таллине, что не
    > соответствует действительности и так же по другим полям.
    >  Во вторых можно
    > ничего не найти, например мой домен не находит.

    Мне нужно исключительно по Ip-м. Домены меня не интересуют.  А у ip-в достоверность выше.
    Цель - анализ адекватности голосов на сайте. Не точный, не идеальный, но хоть какой-то.
  • Anatoly Podgoretsky © (11.05.10 12:28) [5]
    > YurikGL  (11.05.2010 12:11:04)  [4]

    WhoIS работает исключительно с доменами, это всего лишь регистрационная
    база.
    А как ты запрашиваешь по имени или по ИП не важно.
    Тебе нужна другая база, ИП географическая, но обычно это тайна, ее ведут
    провайдеры и шареварщики, для себя. Я же говорил, что я был в Калифорнии,
    что доказывает бессмысленность базы(баз) Whois - это все обман. Касательно
    моей записи в Whois, то сейчас там все правильно, никаких Калифорний и
    Таллинов.
  • YurikGL © (11.05.10 12:35) [6]

    > WhoIS работает исключительно с доменами, это всего лишь
    > регистрационная
    > база.
    > А как ты запрашиваешь по имени или по ИП не важно.

    Может я что то не своими именами называю...
    http://www.ripe.net/perl/whois
    ввожу ip-к. Например 81.30.200.38 Этому ip-ку не соответствуют никакие доменные имена (по крайней мере, не должны)
    Он выдает (в т.ч.)
    % Information related to '81.30.192.0 - 81.30.201.255'
    ....
    person:          Nikolay Triakin
    address:         ZAO "Delovaja set"
    address:         902,17 Curupa str.
    address:         Ufa Russia
    phone:           +7 3472 900400 begin_of_the_skype_highlighting              +7 3472 900400      end_of_the_skype_highlighting
    fax-no:          +7 3472 900400
    nic-hdl:         NT206-RIPE
    source:          RIPE # Filtered



    Вот мне и нужно такие запросы составлять автоматизированно в больших количествах. А в идеале еще и "правильно" вытаскивать город и оператора связи (если это технически возможно).
  • Anatoly Podgoretsky © (11.05.10 12:55) [7]
    > YurikGL  (11.05.2010 12:35:06)  [6]

    RIPE NCC содержит информацию по сетям и делает поиск по NETNAME и по ИП
    Во всяком случае он не смог сделать поиск по моей сети и выдал неверную
    информации.
    А точную информацию об моей сети/домене можно получить с NIC
  • Anatoly Podgoretsky © (11.05.10 13:06) [8]
    > Anatoly Podgoretsky  (11.05.2010 12:55:07)  [7]

    Вот whois по мне, у моего регистратора
    http://www.networksolutions.com/whois-search/podgoretsky.com
    Попробуй определить город и оператора
    То же по RIPE NCC, там вообще чушь
  • YurikGL © (12.05.10 06:33) [9]
    Еще раз повторяю. Мне не нужны доменные имена. Мне нужно "где находится вот этот вот Ip-к" доменных имен у меня вообще нет.
    Для ip-ка 83.166.49.48 (резолвится на podgoretsky.com) получаем информацию. Есть основания утверждать, что ip-к 83.166.49.48 находится не в Эстонии?

    inetnum:         83.166.49.0 - 83.166.51.255
    netname:         VIRUNET
    descr:           Narva-2 XDSL
    country:         EE
    admin-c:         VNET1-RIPE
    tech-c:          VNET1-RIPE
    status:          ASSIGNED PA
    mnt-by:          MNT-VNET
    mnt-lower:       MNT-VNET
    mnt-routes:      MNT-VNET
    source:          RIPE # Filtered

    role:            VNET NOC
    address:         Uus tn. 2
    address:        41533 Jo'hvi
    address:         Estonia
    phone:           +372 33 70146 begin_of_the_skype_highlighting              +372 33 70146      end_of_the_skype_highlighting
    phone:           +372 53 411 511 begin_of_the_skype_highlighting              +372 53 411 511      end_of_the_skype_highlighting
    fax-no:          +372 33 71908
    admin-c:         TL435-RIPE
    tech-c:          AN1246-RIPE
    nic-hdl:         VNET1-RIPE
    mnt-by:          MNT-VNET
    abuse-mailbox:   abuse@vnet.ee
    source:          RIPE # Filtered

    % Information related to '
    83.166.32.0/19AS3249'

    route:           83.166.32.0/19
    descr:           EE-VIRUNET-20040525
    origin:          AS3249
    mnt-by:          ESTPAK-MNT
    source:          RIPE # Filtered

  • Anatoly Podgoretsky © (12.05.10 09:28) [10]
    > YurikGL  (12.05.2010 06:33:09)  [9]

    Сейчас в Эстонии. но это не моя запись, эта запись относится к netname:
    VIRUNET
    И живу я по другому адресу (а вопрос про Город), в whois networksolution
    совсем другие данные, только их посмотреть вам нельзя, у меня приватная
    регистрация. То есть RIPE своей роли не смог выполнить.
  • Anatoly Podgoretsky © (12.05.10 09:32) [11]
    > YurikGL  (12.05.2010 06:33:09)  [9]

    Кстати по поводу "не в Эстонии", это сейчас, а я писал, что находился в
    Калифорнии, в городе Санта Фе, не покидая Эстонию.
    Но если это устраивает, да ради бога. Тогда ICS в руки + RFC + RIPE Whois
    Documentation
  • Anatoly Podgoretsky © (12.05.10 10:11) [12]
    Кстати и та приведеная в RIPE информация, тоже уже не верная, просто ее не исправляют в WHOIS, на самом деле netname уже Elion и местонахождения уже Таллин
  • YurikGL © (13.05.10 20:09) [13]
    Информации Ripe-а мне вполне хватает....
    Покурив http://labs.ripe.net/content/ripe-database-api-documentation#QueryAPI-search  выяснил, что запросы типа http://lab.db.ripe.net/whois/search?source=ripe&query-string=94.41.9.69 возвращают достаточно внятную xml-ку
    ip-к можно подставлять любой (из зоны ripe-а).

    Осталась сущая малось.... научиться загружать xml-ку и парсить.

    з.ы. пост ответа не требует... так, если вдруг кому понадобиться.
  • Gu (03.09.10 19:20) [14]
    примерная реализация

    кидаем на форму edit1,button,memo,компоненты XMLDocument (с вкладки Internet) и JvHttpUrlGrabber (из набора jedi), в свойствах JvHttpUrlGrabber1 меняем OutputMode на omStream

    в обработчике кнопки пишем

    memo1.clear;
    JvHttpUrlGrabber1.Url:='http://lab.db.ripe.net/whois/search?source=ripe&query-string='+edit1.text;
    memo1.lines.add('IP: '+edit1.text);
    JvHttpUrlGrabber1.Start;

    в обработчике JvHttpUrlGrabber1DoneStream

    var s:string;c:ixmlnodelist;x:ixmlnode;
    begin
    Try
    XMLDocument1.LoadFromStream(stream);
    XMLDocument1.Active:=true;s:='';
    c:=XMLDocument1.DocumentElement.ChildNodes; // получаем структуру
    x:=c.Get(2); // спускаемся по веткам
    c:=x.ChildNodes;x:=c.Get(0);
    c:=x.ChildNodes;x:=c.Get(3);
    c:=x.ChildNodes;x:=c.Get(0);
    if x.Attributes['value']<>null then s:=' (диапазон: '+x.Attributes['value']+', имя сети: ' else s:=s+'?';
    x:=c.Get(1);
    if x.Attributes['value']<>null then s:=s+x.Attributes['value']+', пояснение: ' else s:=s+'?';
    x:=c.Get(2);
    if x.Attributes['value']<>null then s:=s+x.Attributes['value']+', страна: ' else s:=s+'?';
    x:=c.Get(3);
    if x.Attributes['value']<>null then s:=s+x.Attributes['value']+')' else s:=s+'?';
    memo1.Lines.Add(s);
    XMLDocument1.Active:=false;
    except
    memo1.lines.add('error');
    end;
    JvHttpUrlGrabber1.Stop;
  • Gu (03.09.10 19:29) [15]
    похожая проблема: http://pda.delphimaster.net/?id=1283385235&n=4
  • YurikGL © (06.09.10 12:18) [16]
    В итоге получилось как-то так.

    dst: TADODataSet;
    dsc: TADOCommand;

    ...
    в dst лежит список ip-в

    заполнение поля st данными, возвращаемыми ripe-м

    dst.First;
    dsc.CommandText:='update t set st=:st where id=:id';
    try
    while not dst.Eof do begin
     st:=IdHTTP1.Get('http://lab.db.ripe.net/whois/search?source=ripe&query-string='+dst.fieldbyname('ip').AsString);
     dsc.Parameters.ParamByName('st').Value:=st;
     dsc.Parameters.ParamByName('id').Value:=dst.fieldbyname('id').value;
     dsc.Execute;
     dst.Next;
     Application.ProcessMessages;
     Memo1.Lines.Add(dst.fieldbyname('id').AsString)
                       end;
    except
      on e:Exception do begin
         ShowMessage(dst.fieldbyname('id').AsString+'|');
                        end
    end;



    определение провайдера (для моих нужд сошло и так)

    dst.First;
    dsc.CommandText:='update t1 set prov=:prov where id=:id';
    try
    while not dst.Eof do begin
     prov:='';

     if pos('Ufanet',dst.fieldbyname('st').asstring)>0 then prov:=Prov+' Уфанет';

     if pos('Golden Telecom',dst.fieldbyname('st').asstring)>0 then prov:=Prov+' ГолденТелеком';
    //много строчек с провайдерами
    ....

     if prov='' then prov:='неизвестен.';

     dsc.Parameters.ParamByName('prov').Value:=prov;
     dsc.Parameters.ParamByName('id').Value:=dst.fieldbyname('id').value;
     dsc.Execute;
     dst.Next;
     Application.ProcessMessages;
     Memo1.Lines.Add(dst.fieldbyname('id').AsString)
                       end;
    except
      on e:Exception do begin
         ShowMessage(dst.fieldbyname('id').AsString+'|');
                        end
    end;

 
Конференция "Сети" » Модуль Whois, определение города и оператора связи по ip-ку. [D7, WinXP]
Есть новые Нет новых   [134436   +25][b:0][p:0.003]