如何使用本地DNS服务器或受控主机文件获取域记录

时间:2018-12-14 11:31:24

标签: bash shell dns

我正在尝试为域名编写动态DNS更新程序。我一切正常,如我所愿。基本上,事件链是这样的:

  1. 卷曲我的公共IP地址
  2. 使用命令(nslookup,whois,dig,主机)检查当前的域名IP记录
  3. 比较两者
  4. 如果不相等则更新dns

我遇到的问题是,站点上有一个本地dns服务器,它将域名解析为它们各自的本地IP地址而不是公共IP地址,这样当从LAN内部使用时,它将使用本地IP地址。

如何从whois记录中直接查找域的A记录,而避免查询DNS服务器?

1 个答案:

答案 0 :(得分:1)

您可以直接查询该域的名称服务器。

例如,使用mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults); long cacheExpiration = 0; mFirebaseRemoteConfig.fetch(cacheExpiration) .addOnCompleteListener(MainActivity.this, new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Toast.makeText(MainActivity.this, "Fetch Succeeded", Toast.LENGTH_SHORT).show(); // After config data is successfully fetched, it must be activated before newly fetched // values are returned. mFirebaseRemoteConfig.activateFetched(); } else { Toast.makeText(MainActivity.this, "Fetch Failed", Toast.LENGTH_SHORT).show(); } String welcomeMessage1 = mFirebaseRemoteConfig.getString("message1"); String welcomeMessage2 = mFirebaseRemoteConfig.getString("message2"); } }); 查询Google公共DNS

dig

这将直接针对8.8.8查询记录。

您可以使用该域名的主域名服务器的IP替换IP,以确保收到域名服务器的答复。

您可以通过以下方式获取域的域名服务器:

dig example.com @8.8.8.8 +short