Ведь в браузере есть механизм при помощи которого он преобразовывает имена в IP, и кеширует их.
Как получить IP сайта средствами браузера Firefox в расширении?

Что-то типа:

Выделить код

Код:

var ip = convertToIP(domain);

Посмотреть, как получает 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 14:49:46
Где этот код будет работать? В кнопке, дополнении? Функцию callBack самому определять?

liteTua пишет

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 конечно должна быть Ваша, в этой функции Вы можете обработать все полученные данные.

Magneto
А что за расширение?

http://www.recipdonor.com/bar