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

本文介绍了如何使用Java进行域名解析,包括普通域名解析和实现动态主机IP的域名解析。示例代码展示了如何通过InetAddress类获取域名对应的IP地址,并提供了一个简单的DNS动态解析服务器和客户端的实现,允许将域名指向动态IP的个人主机。
摘要由CSDN通过智能技术生成

普通的域名解析方法:

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以通过实现java.net.InetAddress类的静态方法来自定义DNS解析。以下是一个示例代码: ``` import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Hashtable; public class CustomDNSResolver { public static void main(String[] args) throws UnknownHostException { // 设置自定义DNS解析 setCustomResolver(); // 解析域名 InetAddress address = InetAddress.getByName("www.baidu.com"); System.out.println(address.getHostAddress()); } private static void setCustomResolver() { // 创建自定义DNS解析器 Hashtable<String, String> env = new Hashtable<String, String>(); env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory"); env.put("java.naming.provider.url", "dns://8.8.8.8"); // 设置系统属性 System.setProperty("sun.net.spi.nameservice.provider.1", "dns,sun"); System.setProperty("sun.net.spi.nameservice.provider.2", "dns,sun"); System.setProperty("sun.net.spi.nameservice.provider.3", "dns,sun"); System.setProperty("sun.net.spi.nameservice.provider.4", "dns,sun"); System.setProperty("sun.net.spi.nameservice.provider.5", "dns,sun"); System.setProperty("sun.net.spi.nameservice.provider.6", "dns,sun"); System.setProperty("sun.net.spi.nameservice.provider.7", "dns,sun"); System.setProperty("sun.net.spi.nameservice.provider.8", "dns,sun"); System.setProperty("sun.net.spi.nameservice.provider.9", "dns,sun"); System.setProperty("sun.net.spi.nameservice.provider.10", "dns,sun"); // 设置系统环境变量 System.setProperties(env); } } ``` 在上面的代码中,我们通过设置系统属性和环境变量来使用自定义DNS解析器。在这个示例中,我们使用了Google的DNS服务器地址(8.8.8.8),你可以根据需要设置其他的DNS服务器地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值