Форум: "Сети";
Текущий архив: 2017.11.12;
Скачать: [xml.tar.bz2];
ВнизМодуль Whois, определение города и оператора связи по ip-ку. Найти похожие ветки
← →
YurikGL © (2010-05-11 10:44) [0]Может кто делал? Что бы можно было для набора ip-в вычислить город и оператора связи. Ну или хотя бы просто вернуть текст аналогичный возвращаемому службой http://www.ripe.net/perl/whois
← →
Anatoly Podgoretsky © (2010-05-11 11:52) [1]> YurikGL (11.05.2010 10:44:00) [0]
Оставь надежду. Во первых там там написано то, что захотел регистрант,
например я одно время находился в Калифорнии, а потом в Таллине, что не
соответствует действительности и так же по другим полям. Во вторых можно
ничего не найти, например мой домен не находит. Ну а в третьих WHOIS
компонент много написано, попробуй поискать на Торри.
← →
Anatoly Podgoretsky © (2010-05-11 11:54) [2]> Anatoly Podgoretsky (11.05.2010 11:52:01) [1]
Ну и ты наверно догадываешься, что я вхожу в The RIPE NCC Service Region
← →
YurikGL © (2010-05-11 12:09) [3]
> Ну а в третьих WHOIS
> компонент много написано, попробуй поискать на Торри.
Там из три.
Одно с первого же пинка не запустилось, одно платное, а еще одно показывает географическое расположение.
Будут копать.
Но если есть готовые решения - буду рад
← →
YurikGL © (2010-05-11 12:11) [4]
> Оставь надежду. Во первых там там написано то, что захотел
> регистрант,
> например я одно время находился в Калифорнии, а потом в
> Таллине, что не
> соответствует действительности и так же по другим полям.
> Во вторых можно
> ничего не найти, например мой домен не находит.
Мне нужно исключительно по Ip-м. Домены меня не интересуют. А у ip-в достоверность выше.
Цель - анализ адекватности голосов на сайте. Не точный, не идеальный, но хоть какой-то.
← →
Anatoly Podgoretsky © (2010-05-11 12:28) [5]> YurikGL (11.05.2010 12:11:04) [4]
WhoIS работает исключительно с доменами, это всего лишь регистрационная
база.
А как ты запрашиваешь по имени или по ИП не важно.
Тебе нужна другая база, ИП географическая, но обычно это тайна, ее ведут
провайдеры и шареварщики, для себя. Я же говорил, что я был в Калифорнии,
что доказывает бессмысленность базы(баз) Whois - это все обман. Касательно
моей записи в Whois, то сейчас там все правильно, никаких Калифорний и
Таллинов.
← →
YurikGL © (2010-05-11 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 © (2010-05-11 12:55) [7]> YurikGL (11.05.2010 12:35:06) [6]
RIPE NCC содержит информацию по сетям и делает поиск по NETNAME и по ИП
Во всяком случае он не смог сделать поиск по моей сети и выдал неверную
информации.
А точную информацию об моей сети/домене можно получить с NIC
← →
Anatoly Podgoretsky © (2010-05-11 13:06) [8]> Anatoly Podgoretsky (11.05.2010 12:55:07) [7]
Вот whois по мне, у моего регистратора
http://www.networksolutions.com/whois-search/podgoretsky.com
Попробуй определить город и оператора
То же по RIPE NCC, там вообще чушь
← →
YurikGL © (2010-05-12 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 © (2010-05-12 09:28) [10]> YurikGL (12.05.2010 06:33:09) [9]
Сейчас в Эстонии. но это не моя запись, эта запись относится к netname:
VIRUNET
И живу я по другому адресу (а вопрос про Город), в whois networksolution
совсем другие данные, только их посмотреть вам нельзя, у меня приватная
регистрация. То есть RIPE своей роли не смог выполнить.
← →
Anatoly Podgoretsky © (2010-05-12 09:32) [11]> YurikGL (12.05.2010 06:33:09) [9]
Кстати по поводу "не в Эстонии", это сейчас, а я писал, что находился в
Калифорнии, в городе Санта Фе, не покидая Эстонию.
Но если это устраивает, да ради бога. Тогда ICS в руки + RFC + RIPE Whois
Documentation
← →
Anatoly Podgoretsky © (2010-05-12 10:11) [12]Кстати и та приведеная в RIPE информация, тоже уже не верная, просто ее не исправляют в WHOIS, на самом деле netname уже Elion и местонахождения уже Таллин
← →
YurikGL © (2010-05-13 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 (2010-09-03 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 (2010-09-03 19:29) [15]похожая проблема: http://delphimaster.net/view/6-1283385235/
← →
YurikGL © (2010-09-06 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;
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2017.11.12;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.002 c