首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Android上进行反向DNS查找

问无法在Android上进行反向DNS查找
EN

Stack Overflow用户
提问于 2012-03-21 20:23:24
回答 1查看 3.1K关注 0票数 7

我有一个带有IP地址的Android设备连接到Wifi网络。我在Linux计算机上查找了这个IP地址,并验证了该IP地址是否有相应的主机名。

我有一段Java代码,当在我的Windows PC上运行时,可以反向查找DNS (返回主机名):

代码语言:javascript
复制
String dnSuffix;
String ipAddress = "10.228.59.217";
InetAddress inetAddr;
try {
    //inetAddr = InetAddress.getLocalHost();
    inetAddr = InetAddress.getByName(ipAddress);
    //System.out.println("inetAddr = " + inetAddr);
    Log.v(LOG_TAG, "inetAddr = " + inetAddr);
    if (inetAddr != null) {
        dnSuffix = inetAddr.getHostName();
        //System.out.println("dnSuffix is " + dnSuffix);
        Log.v(LOG_TAG,"dnSuffix is " + dnSuffix); 
    }
} catch (UnknownHostException e) {
    //System.out.println("Error getting DN suffix: " + e.getMessage());
    Log.v(LOG_TAG,"Error getting DN suffix: " + e.getMessage());
}

dnSuffix是Windows上预期的主机名。

但是在Android上,它返回一个IP地址而不是主机名,这表明它失败了。

在我的应用程序中,我拥有我认为需要的所有权限:

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" ></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

我找到了这份文件:

getCanonicalHostName 公共字符串getCanonicalHostName() 获取此IP地址的完全限定域名。最好的方法,这意味着我们可能无法返回FQDN,这取决于底层的系统配置。如果有安全管理器,该方法首先使用主机名和-1作为参数调用其checkConnect方法,以查看是否允许调用代码知道此IP地址的主机名,即连接到主机。如果不允许操作,它将返回IP地址的文本表示形式。 返回: 此IP地址的完全限定域名,或者如果安全检查不允许操作,则为IP地址的文本表示形式。 因为: 1.4 另请参阅: ( SecurityManager.checkConnect(java.lang.String,int)

我还发现有人有类似的问题:

getCanonicalHostName返回一个IP地址

但没有决心。

有人能提供任何帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2012-03-22 00:42:34

我真的不确定它能不能工作,遵循2.3源(缩写)

代码语言:javascript
复制
inetAddr = InetAddress.getByName(ipAddress);
getByName(numeric) -> getAllByName/Impl(numeric) -> lookupHostByName(numeric)
return bytesToInetAddresses(getaddrinfo(host), host)[0]

主机是数字字符串,然后对结果对象调用getHostName()将返回主机( ip)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9812260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档