使用使用Java实现实现DNS域名解析的简单示例域名解析的简单示例
主要介绍了使用Java实现DNS域名解析的简单示例,包括对一个动态IP主机的域名解析例子,需要的朋友可以参考
下
普通的域名解析方法:普通的域名解析方法:
import java.net.*;
public class Kkkk {
public static void main(String args[]) throws Exception {
InetAddress address = InetAddress.getByName("wxh-PC");// wxh-PC是我的计算机名
System.out.println(address);
System.out.println("-----");
InetAddress address1 = InetAddress.getLocalHost();
System.out.println(address1);
InetAddress[] addresses = InetAddress
.getAllByName("www.baidu.com");
System.out.println(addresses.length);
for (InetAddress addr : addresses) {
System.out.println(addr);
}
}
}
实现具有动态主机实现具有动态主机IP的域名解析的域名解析
目的利用一台INTERNET DNS HOST 将域名定向到家中(个人)的主机上.
目前CABLEMODEM已经很快了,而且有动态IP,所以就有了将域名解析到个人机器的上可能.
只要通过很简单的设置就可以搞定.
例如你有一个域名叫 yourdomain.com ,你可以将此域名解析任意的主机.
1.服务器 (IP: A.A.A.A) 启动DNS动态解析的一个小进程.
jb51.net的域名文件为 /var/named/jb51.net
再建个/var/named/jb51.net.static (模板文件可以用来生成jb51.net的)
(JDK1.3 , linux )
# 原代码如下: ThreadDNSReloadServer.java
import java.io.*;
import java.net.*;
public class ThreadDNSReloadServer
{ public static void main(String[] args)
{ int i=1;
try
{ ServerSocket s=new ServerSocket(8189);
for (;;)
{ Socket incoming =s.accept();
System.out.println("accept new client: " + i);
new ThreadDNSReloadHandle(incoming,i).start();
i++ ;
}
}
catch (Exception e)
{ System.out.println(e);
}
}
}
class ThreadDNSReloadHandle extends Thread
{ public ThreadDNSReloadHandle(Socket i,int c)
{ incoming= i; counter=c; }
public void run()
{ try
{ BufferedReader in=new BufferedReader(new InputStreamReader(incoming.getInputStream()));
String User="Unkown";
String DNSFILEPATH="/var/named/";
评论0