>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Получить IP сайта средствами Firefox http://forum.mozilla-russia.org/viewtopic.php?id=56286 |
Magneto > 06-09-2012 13:17:36 |
Ведь в браузере есть механизм при помощи которого он преобразовывает имена в IP, и кеширует их. Что-то типа: |
Infocatcher > 06-09-2012 13:54:57 |
Посмотреть, как получает IP Flagfox? |
Magneto > 20-10-2012 13:56:31 |
Вообщем как я и предполагал у 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 полученные результаты кеширует на одну сессию. |
liteTua > 20-10-2012 14:35:02 |
Magneto 20-10-2012 14:49:46 |
Magneto > 20-10-2012 15:11:27 |
liteTua пишет
Эта функция не посылает никаких HTTP запросов ни на сайт ни куда либо. Используется TCP или UPD протоколы эти запросы шлются на DNS-сервера, http://ru.wikipedia.org/wiki/%D0%9A%D0% … %D1%8B_DNS Если уже было обращение к какому либо сайту то его IP уже закешировано. (о кешировании я сделал вывод замеряв время получения IP для не посещеных сайтов (20 - 100 мс) и посещенных (1 мс)). Эту функцию я использую в расширении для браузера Firefox. Функция callBack конечно должна быть Ваша, в этой функции Вы можете обработать все полученные данные. |
liteTua > 20-10-2012 17:58:03 |
Magneto |
Magneto > 22-10-2012 12:22:23 |