`
beiluka
  • 浏览: 1145 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于java的DNS解析IP缓存问题

阅读更多
java对DNS解析IP进行缓存,默认缓存超时时间为-1(在重启JVM前永久缓存),
在第一次访问某域名后将会缓存解析到的IP地址,之后直接从缓存里获得所需的信息(如IP地址),而无需再访问DNS服务器,
但如果在进行支付的时候DNS解析IP的地址有变更的话,提交的地址仍为原解析的IP地址,这将会访问到无效的IP地址而无法进行支付

建议在java虚拟机的设置中将缓存的时间设置为较小的时间,例如1分钟(60秒)

由于是全局的变量,在设置后会影响所有的应用程序,请先衡量一下对您平台所有的应用程序是否有影响后再进行设置

设置方法:
在命令启动JVM的时候设置参数"-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"
例如:运行Test.class
java -Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60 Test

Resin
第一个方式:
修改resin.conf,在 <server-default>下,添加如下配置即可
<jvm-arg>-Dnetworkaddress.cache.ttl=60</jvm-arg>
<jvm-arg>-Dsun.net.inetaddr.ttl=60</jvm-arg>
第二个方式:
在linux /unix 下或编辑 httpd.sh
args='-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60'

websphere
第一个方式:
选择服务器-> 应用程序服务器-> Server1-> 进程定义->Java 虚拟机。
滚动到通用 JVM 参数,添加:
-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60
单击确定以保存更改
第二个方式:
修改XML文件
IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\liangwgNode01Cell\nodes\liangwgNode01\servers\server.xml
在文件末尾,在属性“disableJIT="false"”之前的位置,
添加:genericJvmArguments="-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"

Tomcat
第一个方式:
1:进入TOMCAT的bin目录下,找到tomcat5w.exe文件,双击,选择java,找到java options
在文本框里添加: -Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60
第二个方式:
2: 进入TOMCAT的bin目录下,找到文件catalina.bat,增加:
JAVA_OPTS="-Xms256 -Xmx512 -Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"

Weblogic
Weblogic目录下的两个文件:
%Weblogic_home%\user_projects\domains\domain-name\startWebLogic.cmd(如果是UNIX系统,就是startWebLogic.sh )
%Weblogic_home%\user_projects\domains\domain-name\startManagedWebLogic.cmd
(如果是UNIX系统,就是startManagedWebLogic.sh
分享到:
评论

相关推荐

    java实现DNS数据包发送及响应数据包解析IDEA源代码

    Java 实现DNS数据包发送及响应数据包解析的IDEA源代码主要涉及到以下几个核心知识点: 1. **DNS(Domain Name System)域名系统**:DNS是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,允许...

    用java开发的dns,这里面是源代码

    Java开发的DNS解析系统是一个基于Java编程语言实现的域名解析软件,主要负责将人类可读的域名转换为网络可识别的IP地址。这个压缩包文件包含的“dnsjava-2.0.0”可能是一个开源项目的版本,它提供了对DNS协议的详细...

    dns.zip_DNS Java_dns _java dns_zip

    6. **异常处理**:库提供了丰富的异常类型,如`TextParseException`(解析错误)、`ResolverException`(解析器问题)和`NamingException`(一般命名问题),有助于调试和处理DNS查询中的错误。 7. **自定义实现**...

    用java编写的dns内含源码和测试用例

    - 开发自己的DNS解析服务:你可以基于这些源码创建自己的DNS服务器,以满足特定需求,例如本地缓存、安全过滤等。 - 教育和研究:对于学习网络协议、Java编程和DNS工作原理的学生或研究人员,这些源码是宝贵的教育...

    java地址解析和反向地址解析

    1. **DNS缓存**:Java使用本地操作系统提供的DNS解析服务,可能会有DNS缓存影响结果。如果需要强制更新DNS缓存,可能需要清空操作系统的DNS缓存或等待缓存过期。 2. **安全性**:进行DNS查询时,应考虑潜在的安全...

    DNS过滤转发器源码(java)

    1. **DNS解析**:DNS(域名系统)是互联网上的一个核心服务,负责将人类可读的域名转换为IP地址。DNS解析过程包括递归查询和迭代查询,源码中可能包含了这两个过程的实现。 2. **数据包过滤**:通过检查DNS请求中的...

    org.xbill.DNS_java工具类.

    这个库是Java DNS解析器和更新器的实现,为开发者提供了灵活且高效的DNS查询和更新功能。下面我们将详细探讨`org.xbill.DNS`工具类的核心概念、主要功能及其应用。 一、核心概念 1. **DNS记录**:DNS系统中的信息...

    pcap4j 实现本地抓包以及解析DNS

    4. **应用DNS解析结果**: 结果可用于各种用途,如监控DNS流量、分析DNS缓存行为、检测DNS劫持等。 在提供的`pcap4jDemo`文件中,可能包含了实现上述功能的示例代码。通过阅读和理解这个示例,你可以更好地掌握Pcap4...

    Java开发源代码获得特定网站的IP地址.rar

    Java的DNS解析器会在内存中缓存解析结果一段时间,以提高性能。但有时我们可能需要更新缓存,例如在DNS记录改变后。这时,可以使用`InetAddress`的静态方法`flushLocalCache`和`flushDefaultResolverCache`来清空...

    【BUPT】北京邮电大学 DNS relay(JAVA).zip

    4. **DNS缓存**:理解缓存策略,避免重复查询,提高响应速度,同时要考虑到缓存过期和更新的问题。 5. **安全与防攻击措施**:防止DNS欺骗(DNS Cache Poisoning)和其他类型的网络攻击,如使用DNSSEC(DNS安全扩展...

    DnsQuery_SUN_java.zip

    - Java的DNS解析器默认会缓存查询结果以提高性能。缓存可以通过`InetAddress`的静态方法`disableCache()`和`enableCache()`来控制。 - 缓存时间可以通过系统属性`sun.net.dns.cache.timeout`进行设置,默认值为60...

    java实现DNS协议和SNTP协议

    在Java中,我们可以使用`java.net.InetAddress`类来实现DNS解析。例如: ```java try { InetAddress address = InetAddress.getByName("www.example.com"); System.out.println("IP Address: " + address....

    dns.rar_DNS Java_dns

    在IT行业中,DNS(Domain Name System)是一种至关重要的服务,它负责将...然而,需要注意的是,直接在DNS协议上构建加密通信可能面临一些挑战,如DNS缓存污染、中间人攻击等安全问题,因此在实际应用中需要谨慎考虑。

    基于Java的DNS服务器 Eagle DNS.zip

    6. **日志和监控**:通常,DNS服务器会记录查询日志,以便分析服务器性能和排查问题。Eagle DNS也可能具备这样的功能,帮助管理员监控服务器状态。 7. **动态更新**:对于动态DNS(Dynamic DNS)的支持,允许用户更新...

    dns解析代码

    4. **利用标准库**:许多编程语言如Python、Java、C++等都有内置的DNS解析库,如Python的`dnspython`库,可以简化编码工作。 5. **构建和解析DNS报文**:手动构建DNS查询报文并解析响应报文,需要了解二进制格式和...

    基于java的DNS服务器 Eagle DNS.zip

    Eagle DNS是一款基于Java开发的域名解析服务器,它提供了高效、稳定且可扩展的DNS服务。在深入探讨Eagle DNS之前,我们先来了解一下DNS(Domain Name System)的基本概念。 DNS是互联网的一项核心服务,它将人类...

    java实现清理DNS Cache的方法

    Java 实现清理DNS Cache的方法是解决网络应用中DNS解析问题的关键步骤,尤其是在开发和调试阶段,确保每次请求都能获取最新的IP地址。DNS(Domain Name System)缓存是为了提高域名解析速度而存储的,但有时可能需要...

    java源码:DNS服务器 Eagle DNS.zip

    本文将围绕Eagle DNS的源码进行深入解析,涵盖DNS协议、Java网络编程以及源码架构等多个方面。 首先,我们要了解DNS(Domain Name System)的基本概念。DNS是互联网上的一项关键服务,它负责将人类可读的域名转换为...

    基于Java的源码-DNS服务器 Eagle DNS.zip

    Eagle DNS作为DNS服务器,其主要职责包括解析域名查询,管理DNS记录,并处理DNS解析请求。 1. **Eagle DNS核心功能**: - **域名解析**:Eagle DNS能够处理各种类型的DNS查询,如A记录(将域名映射到IPv4地址)、...

    DNSd:用java实现DNS服务器

    1. Java DNS API:Java提供了内置的`java.net.DNS`类,虽然不支持完全自定义的DNS服务器,但可以用来解析和创建DNS查询。 2. UDP/TCP协议:DNS主要基于UDP协议通信,为了保证可靠性,有时也会使用TCP。在Java中,...

Global site tag (gtag.js) - Google Analytics