Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как узнать имя хоста по его IP


Автор: Creos 13.2.2006, 02:49
А можно ли узнать имя хоста к которому относится ip, к примеру, у меня есть список ip-шников, к каждому подписать его хост, это можно испоьлзовать как определение ботов поисковиков.

Автор: Sardar 13.2.2006, 12:21
Creos, нет, ибо зачем козе (JS) баян (работа с DNS)?

Автор: Creos 13.2.2006, 18:20
Sardar, тогда как можно решить это по-другому?
может другие животные баяном легко пользоваться умеют?

Автор: Sardar 13.2.2006, 18:40
Если только какой ActiveX обьект подключить под IE. Под мозиллой пользуем XPCOM, например: http://www.xulplanet.com/references/xpcomref/ifaces/nsIDNSService.html (host -> ip+info)
Не нашёл ip -> host, но просто не искал тщательно. Xотя тебе это не поможет, прав юзать такие обьекты у вебстраничек нет.

Совет: кесарю кесарево, а JS оставь для клиента, обращайся к DNS на сервере, тем более то будет быстро. Полученную инфу уже отдавай клиенту.

Автор: Creos 13.2.2006, 21:08
Sardar, я бы с радостью, но у меня таких возможностей нет, едиснтвенное что я могу использовать НА страничке, это хтмл и всё что в нём.

Другой вариант, который я могу - сделать страничку (например на пхп) на другом хосте и открывать в нульфрейме её, а в параметре передавать ип, а тот в свою очередь через эхо....

так вот на пхп можно будет что-то сделать, по определению хоста ip-шника?

Типа whois-а вот тут: http://sunny.nic.com/cgi-bin/whois

но мне нужен только хост, определить поисковик это или нет.


Автор: 12345c 13.2.2006, 21:25
Так всё равно серверный скрипт (на своём хосте) придётся подключать, чтобы внедрить результат в HTML - с чужого, даже если получишь данные, они будут недоступны из JS. Можешь ещё приложение с правами межсайтового доступа написать. Или внедрять HTML в страницу на 3-м сайте: первый (на котором доступа к скриптам нет) грабишь из 3-го (своего), результаты доступны уже на сервере, оотуда же whois опросишь (2-й сайт). А тогда или серверный, или клиентский скрипт доделает дело.

Автор: Destruction 14.2.2006, 00:03
Эмм, не понял нифига из поста 12345c.

Вобщем делаешь так:
На третьем сайте, где есть коза с хорошим баяном (e.g. PHP), делаешь скрипт, который берёт данные из GET о айпи и узнаёт его имя и верстает такой скрипт:
Код
top.MyFunc("+ Тут полученный IP +")
, и соответсвенно на нужной страце подгружаешь эту страницу во фрейме, передав через GET (e.g. myfile.php?var=value&var2=value2), на верхней странице соответсвенно создаёшь функцию MyFunc, ну или еще как-нить обзави, в которой как тебе нужно работаешь с полученным значением.

Самым лучшим решение было бы раздобыть нормальный хост и там поселиться, ИМХО.

Автор: Creos 14.2.2006, 00:18
Я так и не понял, как узнать хост пользователя по ip.

Номальный хост - допустим народ.ру, даже не важно какой, как будет свой, помещу туда, сейчас главное что б работало хоть иногда.
Вот пришла на страницу с пхп переменная value, равная 66.249.65.8
теперь необходимо узнать имя хоста, через whois (у меня на форуме есть такие функции (php), но к сожалению к скриптам пхп я доступа не имею, и даже скопировать не могу) я узнаю что это: crawl-66-249-65-8.googlebot.com -
гугл бот, значит строковыми манипуляциями, я нахожу в строке googlebot.com и возвращаю значение "Google Bot-я".

ну вот.. как?)

Автор: Sardar 14.2.2006, 01:49
Нет, так не выйдет, только если whois сервис с твоего домена. Не возможно обратиться к документу с другого домена, прав нет. Следовательно общественные whois ты из скриптов пользовать не можешь. Отсюда вывод: забей или давай здачу подробней, где понадобилось, найдём более корректное решение.

Автор: 12345c 14.2.2006, 02:39
Destruction, так не выйдет (см. пост Sardar), поэтому нужна та более сложная схема (одна из двух), которую ты, как говоришь, не понял.

Возможно, у тебя получается, если ты отключил блокировку межсайтового скриптинга в ie. Но это не общее решение.


Creos, проще говоря, джаваскриптом никак.

Автор: Creos 14.2.2006, 02:42
Sardar, толком не понял что ты имел ввиду.
Цитата

Не возможно обратиться к документу с другого домена, прав нет.

А если страничка с другого домена, но своя, т.е. забить нужным элементам (в которых хранится значение хоста) айдишники, а со странички, где загружена в нульфрейме первая, обращаться по айдишникам к элементам первой. Возможно?

Итак... задача:

Дано: HTML - шаблон, используемый php скриптами (доступа к которым я не имею) моего форума. Сам HTML шаблон я изменять могу - использовать как html так и js-ы.
За примером этого шаблона далеко не бегайте - откройте "Кто в онлайне" этого форума (Внизу главной страницы "Полный список по: http://forum.vingrad.ru/index.php?act=Online&CODE=listall&sort_key=click"), и увидите список ников, администрация же видит еще и ip ника/гостя.
т.е. администрация видит мою строчку так:
Creos ( 0.0.0.0 )

Соответственно шаблон - выглядит примерно так:
<td>{user['name']} ( {user['ip']} )</td>

п.с. на самом деле это не так, там ип и имя не разделены, и являются одной переменной {user['data']}, ип нужно выделять на строковом уровне, но это я и сам смогу.

Теперь я открываю онлайн лист, и вижу там
Гость: ip-шник
Гость: ip-шник
и т.д.

Я же хочу, что б там писались не Гость и его айпи, а имя бота, если он конечно таковым и является, а проверку эту делать по его хосту. Если его хост googlebot.com то это Гугл-бот.

Это сама задача.






Автор: Sardar 15.2.2006, 00:00
Цитата(Creos @ 14.2.2006, 01:42 Найти цитируемый пост)
А если страничка с другого домена, но своя

Ну как своя, докажи smile
Шучу, но серьёзно никак, документ из другого домена закрыт, можно ещё поиграться с сертификатами и подписями, но в реале оно того не стоит.

О задаче: не на клиенте! Ничего не стоит тебе вызват gethostbyaddr (PHP) на сервере, попроси админов обновить скрипты. Иначе это не серьёзно, пытаться что-то сделать когда доступа к серверу нет smile

Автор: Creos 17.2.2006, 19:56
Sardar, переубедил smile

Админам пофиг.

Я уже нашел все исходники форумов, осталось наладить на другом хостинге.


В итоге, тему продолжит более настойчивый человек smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)