none

 
UI's: X, Web, Command, API
Download Full Demo Now
Reduce Operations Costs
Technical Information
Staging / Failover
IP Management
Snapshots
Solaris 10!
README
Converter
Buy Online
Documentation
BIND: 4.x, 8.x, 9.x
Open And Extensible
Platforms: Solaris, Linux
Other resources
Backup Power Generators
 

none

DNS file generators for UNIX. With the DNS Boss file generators, you can easily create your ASCII DNS BIND files for your DNS servers. No need to do it by hand.
none none none none





Java API

     DNS Boss has an extremely powerful Java API to 
modify data, and generate reports.  With the DNS Boss 
API, a rich set of features become available to:  
customize, automate, and program your DNS environment.

     To demo the DNS Boss API, simply do the following:

# cd /opt/DNSBoss/lib/tools/java_api
# ls 
api_demo     APIDemo.java
# ./api_demo

     The APIDemo.java Java program gives a running 
example of how to use the features of the API. 

     When recompiling, make sure to use SDK 1.2 or 
greater, and use the following CLASSPATH.  Example:
/usr/java/bin/javac -classpath \
  /usr/java/lib/rt.jar:/opt/DNSBoss/lib/dnsboss.jar:/opt/DNSBoss/lib/tools/java_api \
  APIDemo.java

     For best results, create a few DNS domains and 
add some sample data into each domain.  Then run:  
/opt/DNSBoss/lib/tools/java_api/api_demo.

     Here is the current version of the Java API 
example source code.     



/*
     APIDemo.java

     This stand alone Java application demonstrates 
     the features of the DNS Boss 
     Java API.  
*/




import java.util.Vector;
import java.util.TreeMap;
import java.util.Iterator;


class APIDemo {

     APIDemo() {
          DNSBoss myDNSBoss = new DNSBoss();

          System.out.println( "___________________________________________________________________________________" );

          TreeMap domainNamesTreeMap = myDNSBoss.getDomainNames();
          int domainNamesCounter = 0;
          for ( Iterator mainIterator = domainNamesTreeMap.keySet().iterator(); mainIterator.hasNext(); ) {
               ++domainNamesCounter;

               String dns_domain = (String)mainIterator.next();

               System.out.println( " " );
               System.out.println( "___________________________________________________" );
               System.out.println( "DNS domain #" + domainNamesCounter + ":        " + dns_domain );


               //
               // List all subnets.
               //
               TreeMap subNetsForDomainTreeMap = myDNSBoss.getSubNetsForDomain( dns_domain );
               int subNetsForDomainCounter = 0;
               for ( Iterator myIterator = subNetsForDomainTreeMap.keySet().iterator(); myIterator.hasNext(); ) {
                    ++subNetsForDomainCounter;
                    String subNet = (String)myIterator.next();
                    System.out.println( subNetsForDomainCounter + "     Subnets for     " + 
                                        dns_domain + ":  " + subNet );
               }

               //
               // List all available IP's for a subnet.
               //
               System.out.println( "___________________________________________________" );
               System.out.println( "Available IP's:" );
               TreeMap subNetsForDomainTreeMap1 = myDNSBoss.getSubNetsForDomain( dns_domain );
               subNetsForDomainCounter = 0;
               for ( Iterator myIterator = subNetsForDomainTreeMap1.keySet().iterator(); myIterator.hasNext(); ) {
                    ++subNetsForDomainCounter;
                    String subNet = (String)myIterator.next();
                    System.out.println( subNetsForDomainCounter + "     Subnets for     " + 
                                        dns_domain + ":  " + subNet );
                    Vector availableIPsVector = myDNSBoss.getAllAvailableIPsForDomainOnSubNet( dns_domain, subNet );
                    for ( int i=0;i < availableIPsVector.size();++i) {
                         String anAvailableIP = (String)availableIPsVector.elementAt(i);
                         System.out.println( "Available IP for domain:  " + dns_domain + " on subnet:  " + 
                                              subNet + "  IP:  " + anAvailableIP );
                    }
                    
               }
               System.out.println( "___________________________________________________" );
               System.out.println( " " );


               //
               // Add a host.
               //
               System.out.println( "___________________________________________________" );
               System.out.println( "Add hosts" );
               TreeMap subNetsForDomainTreeMap2 = myDNSBoss.getSubNetsForDomain( dns_domain );
               for ( Iterator myIterator = subNetsForDomainTreeMap2.keySet().iterator(); myIterator.hasNext(); ) {
                    String subNet = (String)myIterator.next();
                    // Use:  true to really write the next available IP.
                    boolean write = false;
                    String addHostToNextAvailableIP = myDNSBoss.addHostToNextAvailableIPForDomainOnSubNet( 
                                                           "robin", dns_domain, subNet, write );
                    System.out.println( "     Prepared to add:     " + addHostToNextAvailableIP );
               }

               //
               // List out names in a domain.
               //
               System.out.println( "___________________________________________________" );
               TreeMap namesInADomainTreeMap   = myDNSBoss.getNamesInADomain( dns_domain );
               int namesInADomainCounter = 0;
               for ( Iterator myIterator = namesInADomainTreeMap.keySet().iterator(); myIterator.hasNext(); ) {
                    ++namesInADomainCounter;
                    String name = (String)myIterator.next();
                    if ( namesInADomainTreeMap.containsKey( name ) ) {
                         System.out.println( namesInADomainCounter + "     Unique name for " + 
                                             dns_domain + ":  " + name );
                    }
                    System.out.println( "      " + name + "." + dns_domain + " exists:  " + 
                                        myDNSBoss.nameExistsInDomain( name, dns_domain ) );
               }

               //
               // List out unique IP's in a domain.
               //
               System.out.println( "___________________________________________________" );
               TreeMap uniqueIPsInADomainTreeMap   = myDNSBoss.getUniqueIPsInADomain( dns_domain );
               int uniqueIPsInADomainCounter = 0;
               for ( Iterator myIterator = uniqueIPsInADomainTreeMap.keySet().iterator(); myIterator.hasNext(); ) {
                    ++uniqueIPsInADomainCounter;
                    String ip = (String)myIterator.next();
                    if ( uniqueIPsInADomainTreeMap.containsKey( ip ) ) {
                         System.out.println( uniqueIPsInADomainCounter + "     Unique IP for   " + 
                                             dns_domain + ":  " + ip );
                    }
               }

               //
               // List out unique names in a domain.
               //
               System.out.println( "___________________________________________________" );
               System.out.println( "Hosts:" );
               Vector aDomainsHostDataVector    = myDNSBoss.getHostsInADomain( dns_domain );
               for ( int i=0;i < aDomainsHostDataVector.size();++i) {
                    HostEntry myHostEntry = (HostEntry)aDomainsHostDataVector.elementAt(i);
                    System.out.println( i + "     " + myHostEntry.getIP() + "  " + myHostEntry.getName() );
               }

               //
               // List duplicate names in a domain.
               //
               System.out.println( "___________________________________________________" );
               System.out.println( "Duplicate names in:  " + dns_domain );
               Vector duplicateNamesInADomainVector    = myDNSBoss.getDuplicateNamesInADomain( dns_domain );
               for ( int i=0;i < duplicateNamesInADomainVector.size();++i) {
                    System.out.println( duplicateNamesInADomainVector.elementAt(i) );
               }
               System.out.println( "___________________________________________________" );
               System.out.println( " " );

               System.out.println( "___________________________________________________________________________________" );
          }

          //
          // List all IP's and names in all domains.
          //
          System.out.println( "___________________________________________________________________________________" );
          System.out.println( " " );
          System.out.println( "Listing all IP's and names in all domains." );
          System.out.println( " " );
          displayTreeMap( myDNSBoss.getGlobalIPsAndNames() );
          System.out.println( " " );
          System.out.println( "___________________________________________________________________________________" );


          //
          // List all subnets in all domains.
          //
          System.out.println( " " );
          System.out.println( "Listing all subnets in all domains." );
          System.out.println( " " );
          displayTreeMap( myDNSBoss.getGlobalSubNets() );
          System.out.println( " " );
          System.out.println( "___________________________________________________________________________________" );


          //
          // Listing all duplicate:  IP's, names, and CNAMES in all domains.
          //
          System.out.println( " " );
          System.out.println( "Listing all duplicate:  IP's, names, and CNAMES in all domains. " );
          System.out.println( " " );
          displayVector( myDNSBoss.getDuplicateIPsNamesAndCNamesInAllDomains() );
          System.out.println( " " );
          System.out.println( "___________________________________________________________________________________" );

         
          //
          // Listing only duplicate IP's in all domains.
          //
          System.out.println( " " );
          displayVector( myDNSBoss.getGlobalDuplicateIPs() );
          System.out.println( " " );
          System.out.println( "___________________________________________________________________________________" );

     }

     public void displayVector( Vector myVector ) {
          for(int i=0;i < myVector.size();++i) {
               System.out.println( (String)myVector.elementAt(i) );
          }
     }

     public void displayTreeMap( TreeMap myTreeMap ) {
          for ( Iterator myIterator = myTreeMap.keySet().iterator(); myIterator.hasNext(); ) {
               String data = (String)myIterator.next();
               System.out.println( myTreeMap.get( data ) );
          }
     }

     public static void main(String args[]) {
          new APIDemo();
     }

}