Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с dns серверами 
V
    Опции темы
Alexandr87
Дата 10.2.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



Есть ли стандартный класс для работы с DNS серверами. Нужна собственно одна возможность - определить имеется ли запись для данного адреса на определенном DNS сервере.

PM Jabber   Вверх
LSD
Дата 10.2.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 19
Всего: 538



Через DNS Service Provider для JNDI.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Alexandr87
Дата 10.2.2006, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



Пример можно, пожайлуста - просто послать запрос и получить ответ. нужно срочно!
PM Jabber   Вверх
vinegr
Дата 10.2.2006, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 6.2.2006

Репутация: 1
Всего: 3



короткий док на
у меня валяется сэмпл, содранный откуда-то, который читает почтовые (МХ) записи для заданного домена.
Если нужны ИП-шники - меняешь "МХ" на "А"
Если нужно опрашивать заданный ДНС-сервер, задаешь его в DirContext - вот цитата из дока

Цитата

Example 1
In this example we create an initial context representing the sun.com domain, then read the IP addresses (the A records) of two hosts in that domain.
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
env.put("java.naming.provider.url",    "dns://server1.sun.com/sun.com");

DirContext ictx = new InitialDirContext(env);
Attributes attrs1 = ictx.getAttributes("host1", new String[] {"A"});
Attributes attrs2 = ictx.getAttributes("host2", new String[] {"A"});

Example 2
Instead of using the properties as above, we may pass a DNS pseudo-URL to the methods of the default initial context. In this example we read the MX record of a host in the sun.com domain.
DirContext ictx = new InitialDirContext();
Attributes attrs3 = ictx.getAttributes("dns://server1.sun.com/host3.sun.com",
                                      new String[] {"MX"});



Код

// Print out a sorted list of mail exchange servers for a network domain name
import java.util.*;
import java.util.Comparator;
import javax.naming.*;
import javax.naming.directory.*;

public class MailHostsLookup 
{
    public static void main(String args[]) 
    {
        if (args.length != 1)
        {
            System.err.println("USAGE: MailHostsLookup domainName");
            System.exit(-1);
        } 
        String[] mailHosts = null;
        try
        {
            mailHosts = lookupMailHosts(args[0]);
        }
        catch (NamingException e)
        {
            System.err.println("ERROR: No DNS entry for '" + args[0] + "'");
            System.exit(-2);
        }
        for (int i = 0; i < mailHosts.length; i++)
        {
            System.out.println(mailHosts[i]);            
        }
     }

    // returns a String array of mail exchange servers (mail hosts) 
    // sorted from most preferred to least preferred
    static String[] lookupMailHosts(String domainName) throws NamingException
    {
        // see: RFC 974 - Mail routing and the domain system
        // see: RFC 1034 - Domain names - concepts and facilities
        // see: http://java.sun.com/j2se/1.4.2/docs/guide/jndi/jndi-dns.html
        //   DNS Service Provider for the Java Naming Directory Interface (JNDI)
        InitialDirContext iDirC = new InitialDirContext();
        Attributes attributes = 
            iDirC.getAttributes("dns:/" + domainName, new String[] {"MX"});
        // attributeMX -- a list of the Mail Exchange(MX) Resource Records(RR)
        Attribute attributeMX = attributes.get("MX");

        // if there are no MX RRs then default to domainName (see: RFC 974)
        if (attributeMX == null)
        {
            return (new String[] {domainName});
        }

        // split MX RRs into Preference Values(pvhn[0]) and Host Names(pvhn[1])
        String[][] pvhn = new String[attributeMX.size()][2];
        for (int i = 0; i < attributeMX.size(); i++)
        {
            pvhn[i] = ("" + attributeMX.get(i)).split("\\s+");
        }

        // sort the MX RRs by RR value (lower is preferred)
        Arrays.sort(pvhn, new Comparator()
            {
                public int compare(Object o1, Object o2)
                {
                    return (Integer.parseInt(((String[]) o1)[0]) - 
                            Integer.parseInt(((String[]) o2)[0]));
                }
            });

        // put sorted host names in an array, get rid of any trailing '.' 
        String[] sortedHostNames = new String[pvhn.length];
        for (int i = 0; i < pvhn.length; i++)
        {
            sortedHostNames[i] = pvhn[i][1].endsWith(".") ? 
                pvhn[i][1].substring(0, pvhn[i][1].length() - 1) : pvhn[i][1];
        }
        return sortedHostNames;
    }
}



PM MAIL   Вверх
Alexandr87
Дата 10.2.2006, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



Реализовал стандартно (всмысле через Socket), но пример увидеть бы хотелось
PM Jabber   Вверх
LSD
Дата 10.2.2006, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 19
Всего: 538



Цитата(Alexandr87 @ 10.2.2006, 18:21 Найти цитируемый пост)
Пример можно, пожайлуста - просто послать запрос и получить ответ. нужно срочно!

Вот Sun-овский пример. Тебе нужен будет JNDI Demo Browser и DNS Service Provider.
Не уверен что ты по этой ссылке попадешь куда надо (там по моему идет привязка к сессии). Поэтому на всякий случай: идешь сюда, выбираешь Download JNDI 1.2.1 & More.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Alexandr87
Дата 10.2.2006, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



Всем большое спасибо
PM Jabber   Вверх
bavar
Дата 26.2.2006, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 4.12.2005

Репутация: нет
Всего: нет



LSD тебе респект.
Очень помогло.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0803 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.