-
Может кто делал? Что бы можно было для набора ip-в вычислить город и оператора связи. Ну или хотя бы просто вернуть текст аналогичный возвращаемому службой http://www.ripe.net/perl/whois
-
> YurikGL (11.05.2010 10:44:00) [0]
Оставь надежду. Во первых там там написано то, что захотел регистрант, например я одно время находился в Калифорнии, а потом в Таллине, что не соответствует действительности и так же по другим полям. Во вторых можно ничего не найти, например мой домен не находит. Ну а в третьих WHOIS компонент много написано, попробуй поискать на Торри.
-
> Anatoly Podgoretsky (11.05.2010 11:52:01) [1]
Ну и ты наверно догадываешься, что я вхожу в The RIPE NCC Service Region
-
> Ну а в третьих WHOIS > компонент много написано, попробуй поискать на Торри.
Там из три. Одно с первого же пинка не запустилось, одно платное, а еще одно показывает географическое расположение. Будут копать.
Но если есть готовые решения - буду рад
-
> Оставь надежду. Во первых там там написано то, что захотел > регистрант, > например я одно время находился в Калифорнии, а потом в > Таллине, что не > соответствует действительности и так же по другим полям. > Во вторых можно > ничего не найти, например мой домен не находит.
Мне нужно исключительно по Ip-м. Домены меня не интересуют. А у ip-в достоверность выше. Цель - анализ адекватности голосов на сайте. Не точный, не идеальный, но хоть какой-то.
-
> YurikGL (11.05.2010 12:11:04) [4]
WhoIS работает исключительно с доменами, это всего лишь регистрационная база. А как ты запрашиваешь по имени или по ИП не важно. Тебе нужна другая база, ИП географическая, но обычно это тайна, ее ведут провайдеры и шареварщики, для себя. Я же говорил, что я был в Калифорнии, что доказывает бессмысленность базы(баз) Whois - это все обман. Касательно моей записи в Whois, то сейчас там все правильно, никаких Калифорний и Таллинов.
-
> 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 Вот мне и нужно такие запросы составлять автоматизированно в больших количествах. А в идеале еще и "правильно" вытаскивать город и оператора связи (если это технически возможно).
-
> YurikGL (11.05.2010 12:35:06) [6]
RIPE NCC содержит информацию по сетям и делает поиск по NETNAME и по ИП Во всяком случае он не смог сделать поиск по моей сети и выдал неверную информации. А точную информацию об моей сети/домене можно получить с NIC
-
-
Еще раз повторяю. Мне не нужны доменные имена. Мне нужно "где находится вот этот вот 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
-
> YurikGL (12.05.2010 06:33:09) [9]
Сейчас в Эстонии. но это не моя запись, эта запись относится к netname: VIRUNET И живу я по другому адресу (а вопрос про Город), в whois networksolution совсем другие данные, только их посмотреть вам нельзя, у меня приватная регистрация. То есть RIPE своей роли не смог выполнить.
-
> YurikGL (12.05.2010 06:33:09) [9]
Кстати по поводу "не в Эстонии", это сейчас, а я писал, что находился в Калифорнии, в городе Санта Фе, не покидая Эстонию. Но если это устраивает, да ради бога. Тогда ICS в руки + RFC + RIPE Whois Documentation
-
Кстати и та приведеная в RIPE информация, тоже уже не верная, просто ее не исправляют в WHOIS, на самом деле netname уже Elion и местонахождения уже Таллин
-
-
примерная реализация кидаем на форму 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;
-
-
В итоге получилось как-то так. 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;
|