我玩了几天,撞到了砖墙
该问题已记录在此自述文件中:
https://github.com/vahidhedayati/grails-localdns/blob/master/README.md
基本上,我试图覆盖给定主机名的dns条目...因此,最终会有一个本地db表保存除实际dns之外的条目,并将实际ip覆盖到数据库上的IP(出于测试目的,某些主机名将起作用在内部IP上)
def index() {
System.setProperty("sun.net.spi.nameservice.provider.1", "dns,"+LocalManagedDnsDescriptor.DNS_PROVIDER_NAME)
System.setProperty("sun.net.spi.nameservice.provider.2", "dns,sun")
Security.setProperty("networkaddress.cache.ttl", "0")
def hostName = "google.com"
def ipAddress = "192.168.1.4"
NameStore.getInstance().put(hostName, ipAddress)
performLookup(hostName)
render "done lookup"
}
基本上无论我尝试了什么,都不会触发LocalManagedDns ...
最佳答案
尝试从命令行设置-Dsun.net.inetaddr.ttl=0
。我记得在某处读过一个问题,问题是在JVM中的任何其他内容尝试配置网络之前,需要先设置此属性。
编辑:我挖出了我记得阅读的源代码:https://stackoverflow.com/a/17219327/1446892
关于grails - 在应用程序内使用本地托管的DNS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28381525/