Страницы: 1
Ведь в браузере есть механизм при помощи которого он преобразовывает имена в IP, и кеширует их.
Как получить IP сайта средствами браузера Firefox в расширении?
Что-то типа:
Отсутствует
Посмотреть, как получает IP Flagfox?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Вообщем как я и предполагал у Firefox есть модуль который преобразовывает домен сайта в IP (понятно что браузер обращается за этим к DNS серверу),
но главное что это происходит достаточно прозрачно и не требует использования сторонних сервисов.
Вот код, возможно что кому то пригодится:
function getIP (domain, callBack) { var dns = Components.classes['@mozilla.org/network/dns-service;1'].getService(Components.interfaces.nsIDNSService), thread = Components.classes["@mozilla.org/thread-manager;1"].getService().mainThread, dnslistener = { onLookupComplete: function (aRequest, aRecord, aStatus) { var arrayIP = []; if (aStatus === 0) { while (aRecord && aRecord.hasMore()) { arrayIP.push(aRecord.getNextAddrAsString()); } } else { arrayIP = null; } callBack(domain, arrayIP); } }; dns.asyncResolve(domain, 0, dnslistener, thread); }; // Так как получение IP является ассинхроной операцией то при вызове функции getIP // ей, вместе с доменом нужно передать функцию обратного вызова, функция возвращает // домен для которого получались IP адреса и массив IP-шников
P.S. Firefox полученные результаты кеширует на одну сессию.
Отредактировано Magneto (20-10-2012 15:01:48)
Отсутствует
Magneto
Эта функция делает дополнительный запрос к сайту или использует уже полученные при входе адреса?
Добавлено 20-10-2012 14:49:46
Где этот код будет работать? В кнопке, дополнении? Функцию callBack самому определять?
Отредактировано liteTua (20-10-2012 14:49:46)
Отсутствует
Magneto
Эта функция делает дополнительный запрос к сайту или использует уже полученные при входе адреса?Добавлено 20-10-2012 14:49:46
Где этот код будет работать? В кнопке, дополнении? Функцию callBack самому определять?
Эта функция не посылает никаких HTTP запросов ни на сайт ни куда либо. Используется TCP или UPD протоколы эти запросы шлются на DNS-сервера, http://ru.wikipedia.org/wiki/%D0%9A%D0% … %D1%8B_DNS
Если уже было обращение к какому либо сайту то его IP уже закешировано. (о кешировании я сделал вывод замеряв время получения IP для не посещеных сайтов (20 - 100 мс) и посещенных (1 мс)).
Эту функцию я использую в расширении для браузера Firefox.
Функция callBack конечно должна быть Ваша, в этой функции Вы можете обработать все полученные данные.
Отсутствует
Отсутствует
Страницы: 1