在应用程序内grails本地管理的dns

时间:2015-02-07 11:23:25

标签: grails

我一直在玩这个玩了几天并打了一堵砖墙

本自述文件中记录了该问题:

https://github.com/vahidhedayati/grails-localdns/blob/master/README.md

基本上我试图覆盖给定主机名的dns条目...所以最终有一个本地数据库表保存除实际dns以外的条目并覆盖实际的ip到DB上的内容(对于测试目的,其中cetain主机名将用于内部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都没有被触发......

1 个答案:

答案 0 :(得分:2)

尝试从命令行设置-Dsun.net.inetaddr.ttl=0。我记得在某个地方读到的问题是,在JVM尝试配置网络之前,需要先设置此属性。

编辑:我挖掘了我记得读过的来源:https://stackoverflow.com/a/17219327/1446892