Java 类org.xbill.DNS.PTRRecord 实例源码

项目:plum    文件:DnsResolver.java   
/**
 * reverse lookup an IP address using a specified DNS host and port
 *
 * @param resolverHost name server hostname or IP address
 * @param resolverPort name server port
 * @param address      the IP address to reverse lookup
 * @return a comma separated list of names or an empty string when unable to resolve
 */
public String reverseLookupByAddress(String resolverHost, int resolverPort, InetAddress address) {
    try {
        SimpleResolver resolver = new SimpleResolver(resolverHost);
        resolver.setPort(resolverPort);

        Lookup lookup = new Lookup(fromAddress(address), PTR);
        Record[] records = lookup.run();
        if (records != null) {
            List<String> addresses =
                    of(records)
                            .filter(it -> it instanceof PTRRecord)
                            .map(it -> ((PTRRecord) it).getTarget().toString())
                            .collect(toList());

            return collectionToCommaDelimitedString(addresses);
        } else {
            return "";
        }
    } catch (UnknownHostException e) {
        log.warn("unable to resolve using SRV record " + address, e);
        return "";
    }
}
项目:open-rmbt    文件:Helperfunctions.java   
public static String reverseDNSLookup(final InetAddress adr)
{
    try
    {
        final Name name = ReverseMap.fromAddress(adr);

        final Lookup lookup = new Lookup(name, Type.PTR);
        lookup.setResolver(new SimpleResolver());
        lookup.setCache(null);
        final Record[] records = lookup.run();
        if (lookup.getResult() == Lookup.SUCCESSFUL)
            for (final Record record : records)
                if (record instanceof PTRRecord)
                {
                    final PTRRecord ptr = (PTRRecord) record;
                    return ptr.getTarget().toString();
                }
    }
    catch (final Exception e)
    {
    }
    return null;
}
项目:androidpn_enhanced_client    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * @param addr The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String
getHostByAddr(byte [] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record [] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:androidPN-client.    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * @param addr The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String
getHostByAddr(byte [] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record [] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:tiaki-java    文件:DnsServicesDiscovery.java   
/**
 * Scrapes the Discovery Service Records according to their nature.
 *
 * @param records An array of <code>Record</code> retrieve upon a lookup
 * @param set A <code>ResourcesContainer</code>
 * @param pht A Resource Record Type holder
 */
private void parseRecords(Record[] records, final RecordsContainer set, RrHolderType pht)
{
    if (records != null) {
        for (Record record : records) {
            if ((record instanceof PTRRecord && pht == RrHolderType.ZONES) ||
                    (record instanceof PTRRecord && pht == RrHolderType.NAMES)) {
                String zone = PointerRecord.build((PTRRecord) record).getRData();
                if (zone != null) {
                    set.getLabels().add(zone);
                }
            } else if (record instanceof PTRRecord && pht == RrHolderType.TYPES) {
                set.getLabels().add(PointerRecord.build((PTRRecord) record).getServiceType());
            } else if (record instanceof SRVRecord) {
                ServiceRecord svcRecord = ServiceRecord.build((SRVRecord) record);
                if (svcRecord != null) {
                    set.getRecords().add(svcRecord);
                }
            } else if (record instanceof TXTRecord) {
                set.getTexts().add(TextRecord.build((TXTRecord) record));
            } else {
                errorsTrace.get().put(
                        ExceptionsUtil.traceKey(record.toString(), "",
                                "Parsing-Service-Records"),
                        StatusCode.RESOURCE_UNEXPECTED);
            }
        }
    }
}
项目:xmppsupport_v2    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * 
 * @param addr
 *            The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String getHostByAddr(byte[] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record[] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:AndroidPNClient    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * @param addr The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String
getHostByAddr(byte [] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record [] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:dhcp    文件:ReverseDdnsUpdate.java   
public boolean sendAdd() throws TextParseException, IOException
{
    boolean rc = false;

    Resolver res = createResolver();

    String revIp = buildReverseIpString();

    Name owner = new Name(revIp.toString());
    PTRRecord ptr = new PTRRecord(owner, DClass.IN, ttl, new Name(fqdn));

    Name _zone = buildZoneName(revIp);

    Update update = new Update(_zone);
    update.delete(owner);
    update.add(ptr);

    if (log.isDebugEnabled()) {
        log.debug("Sending reverse DDNS update (replace) to server=" + server + ":\n" + 
                update.toString());
    }
    else if (log.isInfoEnabled()) {
        log.info("Sending reverse DDNS update (replace): " + ptr.toString());
    }
    Message response = res.send(update);

    if (response.getRcode() == Rcode.NOERROR) {
        log.info("Reverse DDNS update (replace) succeeded: " + ptr.toString());
        rc = true;
    }
    else {
        log.error("Reverse DDNS update (replace) failed (rcode=" +
                Rcode.string(response.getRcode()) + "): " + ptr.toString());            
    }
    return rc;
}
项目:dhcp    文件:ReverseDdnsUpdate.java   
public boolean sendDelete() throws TextParseException, IOException
{
    boolean rc = false;

    Resolver res = createResolver();

    String revIp = buildReverseIpString();

    Name owner = new Name(revIp);
    PTRRecord ptr = new PTRRecord(owner, DClass.IN, 0, new Name(fqdn));

    Name _zone = buildZoneName(revIp);

    Update update = new Update(_zone);
    update.delete(ptr);

    if (log.isDebugEnabled()) {
        log.debug("Sending reverse DDNS update (delete) to server=" + server + ":\n" + 
                update.toString());
    }
    else if (log.isInfoEnabled()) {
        log.info("Sending reverse DDNS update (delete): " + ptr.toString());
    }
    Message response = res.send(update);

    if (response.getRcode() == Rcode.NOERROR) {
        log.info("Reverse DDNS update (delete) succeeded: " + ptr.toString());
        rc = true;
    }
    else {
        log.error("Reverse DDNS update (delete) failed (rcode=" +
                Rcode.string(response.getRcode()) + "): " + ptr.toString());            
    }
    return rc;
}
项目:dnsjava    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * @param addr The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String
getHostByAddr(byte [] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record [] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:JavaDNS    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * @param addr The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String
getHostByAddr(byte [] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record [] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:James    文件:DNSJavaService.java   
/**
 * @see org.apache.james.dnsservice.api.DNSService#getHostName(java.net.InetAddress)
 */
public String getHostName(InetAddress addr) {
    String result = null;
    Name name = ReverseMap.fromAddress(addr);
    Record[] records = lookupNoException(name.toString(), Type.PTR, "PTR");

    if (records == null) {
        result = addr.getHostAddress();
    } else {
        PTRRecord ptr = (PTRRecord) records[0];
        result = ptr.getTarget().toString();
    }
    return result;
}
项目:telegraph    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * @param addr The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String
getHostByAddr(byte [] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record [] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:NewCommunication-Android    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * @param addr The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String
getHostByAddr(byte [] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record [] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:dnsjava-fork    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * @param addr The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String
getHostByAddr(byte [] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record [] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:asmack-mini    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * @param addr The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String
getHostByAddr(byte [] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record [] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:megatron-java    文件:IpAddressUtil.java   
private static String reverseDnsLookupUsingDnsJavaExtendedResolver(long ipAddress) throws UnknownHostException {
    byte[] address = convertLongAddressToBuf(ipAddress);
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(address));
    Record[] records = new Lookup(name, Type.PTR).run();
    if (records == null) {
        throw new UnknownHostException();
    }
    String result = ((PTRRecord)records[0]).getTarget().toString();
    // remove trailing "."
    result = result.endsWith(".") ? result.substring(0, result.length() - 1) : result;
    return result;
}
项目:NoProxyForYou    文件:DNSJavaNameService.java   
/**
 * Performs a reverse DNS lookup.
 * @param addr The ip address to lookup.
 * @return The host name found for the ip address.
 */
public String
getHostByAddr(byte [] addr) throws UnknownHostException {
    Name name = ReverseMap.fromAddress(InetAddress.getByAddress(addr));
    Record [] records = new Lookup(name, Type.PTR).run();
    if (records == null)
        throw new UnknownHostException();
    return ((PTRRecord) records[0]).getTarget().toString();
}
项目:tiaki-java    文件:PointerRecord.java   
private PointerRecord(PTRRecord ptrRecord)
{
    super(ptrRecord.getName().toString(),
            ptrRecord.rdataToString(), ptrRecord.getTTL());
}
项目:yeti    文件:DNS.java   
public static PTRRecord getPTRRecord(String ipAddress) {
    return null;
}
项目:yeti    文件:DataAPI.java   
public PTRRecord getPTRRecord(String ipAddress) {
    return null;
}
项目:tiaki-java    文件:PointerRecord.java   
/**
 * Static builder. It wraps out a {@link PTRRecord} by extracting relevant data.
 *
 * @param ptrRecord A {@link PTRRecord} instance to be worked out
 * @return An instance of <code>PointerRecor</code>
 */
public final static PointerRecord build(PTRRecord ptrRecord)
{
    return new PointerRecord(ptrRecord);
}