普通的域名解析方法:

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动态解析的一个小进程.

ctolib.com的域名文件为 /var/named/ctolib.com

再建个/var/named/ctolib.com.static (模板文件可以用来生成ctolib.com的)

(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/";

String DNSFILE="ctolib.com";

String HOSTIP="127.0.0.1";

boolean USER_VALIDATED=true ;

boolean done=false;

while ( !done )

{  String str=in.readLine();

//validate user;

if ( str ==null ) done=true;

else

{

str=str.trim();

if ( str.substring(0,2).equals("LA") )

{ if (str.length() >2) User=str.substring(2);

}

if ( str.substring(0,2).equals("LB") )

{ if (str.length() >2) DNSFILE=str.substring(2);

}

if ( str.substring(0,2).equals("LC") )

{ if (str.length() >2) HOSTIP=str.substring(2);

}

if ( str.trim().equals("BYE")) done = true;

}

}

incoming.close();

//加入用户验证.

//将服务器中的ctolib.com.static文件写入ctolib.com中

String DNSTMP =DNSFILEPATH + DNSFILE +".static";

BufferedReader sin=new BufferedReader(new FileReader(DNSTMP));

PrintWriter sout=new PrintWriter(new FileWriter(DNSFILEPATH + DNSFILE) , true);

String s;

while ((s=sin.readLine()) != null)

{

if (s.startsWith("host"))

{ s="host IN A " + HOSTIP;

sout.println(s);

s="@ IN A " + HOSTIP;

}

sout.println(s);

}

//System.out.println("User:" + User );

//System.out.println("DNSFILE:" + DNSFILE );

//System.out.println("HOSTIP:" + HOSTIP );

//ndc reload

String command="ndc reload " + DNSFILE ;

java.lang.Runtime.getRuntime().exec(command);

}

catch ( Exception e)

{ System.out.println(e);

}

}

private Socket incoming;

private int counter;

}

2.客户机(windows / linux)

# 客户端每次启动时加入到开机启动(或进程中): SockTest.java

import java.io.*;

import java.net.*;

public class SocketTest

{ public static void main(String[] args)

{ try

{ Socket s=new Socket("A.A.A.A",8189);

BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));

PrintWriter out=new PrintWriter(s.getOutputStream(),true);

InetAddress localHostAddress =InetAddress.getLocalHost() ; //get LocalHost Ip

out.println("LAguest");

out.println("LByourdomain.com");

out.println("LC" + localHostAddress.getHostAddress() );

out.close();

s.close();

}

catch (IOException e)

{ System.out.println(e);

}

}

}

dns 样本文件: ( ctolib.com.static)

@ ns.dnsserver.com xxxxx

xxxx

host    IN A 127.0.0.1      // 此处就是要更改的地方

www    IN CNAME host

...

java dns 解析域名解析_使用Java实现DNS域名解析的简单示例相关推荐

  1. java 代码解析工具_改善 Java 代码质量的工具与方法

    原标题:改善 Java 代码质量的工具与方法 我们可能见过上面的有关代码质量的图片,究竟如何衡量一段代码好坏? 代码质量是什么?为什么它很重要? 作家通过他的著作来讲述了一个清晰的.令人信服的故事.他 ...

  2. java xml 解析 列表_用Java解析高级XML

    小编典典 //规范化您的XML,然后Document通过该XML 创建一个,然后遵循以下代码 NodeList nList = doc.getElementsByTagName("foo&q ...

  3. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  4. VMware虚拟网卡导致物理机浏览器DNS解析慢_浏览器正在解析主机

    文章目录 问题描述 解决办法 问题描述 开启VMware的虚拟网卡后,物理机浏览器打开网页用时变长,卡在"正在解析主机" 解决办法 根源还是网卡配置问题,最暴力的办法就是直接禁用, ...

  5. linux运维笔记:DNS解析IP地址的过程(dns解析的原理 )

    linux运维笔记:DNS解析IP地址的过程(dns解析的原理 ) 1.首先:说一下dns解析的流程,大家都知道,计算机之间只能通过ip相互通信,因为ip不好记,于是才使用dns服务器把域名解析为相应 ...

  6. java解析字符串_用Java解析字符串有哪些不同的方法?

    用Java解析字符串有哪些不同的方法? 对于解析播放器命令,我最常使用split方法通过定界符对字符串进行分割,然后再通过一系列ifs或switches找出其余部分. Java中解析字符串的几种不同方 ...

  7. java 解析器_高性能Java解析器实现过程详解

    如果你没有指定数据或语言标准的或开源的Java解析器, 可能经常要用Java实现你自己的数据或语言解析器.或者,可能有很多解析器可选,但是要么太慢,要么太耗内存,或者没有你需要的特定功能.或者开源解析 ...

  8. Java未解析编译_无法解析的编译问题:

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package zz; class xuesheng{ String name; String sex; String age; xuesheng(Str ...

  9. java pdf插件下载_免费java pdf控件

    云原生的概念和理论体系非常的完备,but talk is cheap , show me the code ! 但是作为一名程序员,能动手的咱绝对不多BB,虽然talk并不cheap , 能跟不同层次 ...

  10. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

最新文章

  1. TabHost选项卡的 功能和用法
  2. python中引用上层路径
  3. IDEA弹出'xxx' is not allowed to run in parallel. Would you like to stop the running one?
  4. python对角线图_python对角线图_python – 在Seaborn Jointplot上绘制对角线(相等的线)...
  5. 如何“ git clone”包括子模块?
  6. Intel FPGA 的时序约束
  7. 解放双手---jupyter快捷键
  8. (详解)IDEA中使用git教程
  9. IE6下实现Width:auto
  10. win10桌面新建|解压文件夹不自动显示|需要自动刷新
  11. 速读原著-TCP/IP(Archie、WAIS、Gopher、Veronica和WWW)
  12. 谈google搜索引擎的使用
  13. (第十三届蓝桥杯省赛)试题J:砍竹子(优先队列+模拟)
  14. java deprecated 注释_@Deprecated注解的使用
  15. C语言用一维数组模拟抛硬币,模拟抛硬币(C语言实现)
  16. 2018下半年计算机学科竞赛,2018年度下半年五大学科竞赛,其他赛事时间预告高一高二请收好,不要错过报名.doc...
  17. Centos 下解压和压缩rar文件
  18. Python的10大集成开发环境和代码编辑器(指南)
  19. pip安装指定keras版本
  20. sql函数DATEPART()与DATENAME()

热门文章

  1. Per tile sequence quality
  2. 淘宝运营 钻展基本了解 钻展投放方案 钻展投放注意的点
  3. centos 安装 pcre
  4. POSIX正则表达式
  5. Sparse R-CNN
  6. sping全家桶笔记
  7. 基于stm32的物联网、智能家居控制系统
  8. jieba 详细介绍
  9. Mission Planner中级应用(APM或PIX飞控)4——无人机APM飞控硬件故障简单维修(上)
  10. 51单片机wifi物联网的浇花控制系统设计