我玩了几天,撞到了砖墙

该问题已记录在此自述文件中:

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/

10-13 05:19