Android - getHostName()返回应用名称?

时间:2013-07-03 02:12:26

标签: android dns lookup inetaddress

在我正在处理的Android应用程序中,我只是想获取与ip地址对应的主机名。

private class hostLookUp extends AsyncTask<InetAddress, Integer, String>{
    protected String doInBackground (InetAddress...ip){
        int count = ip.length;
        for (int i = 0; i < count; i++){
            String hostName = ip[i].getHostName();
            if (isCancelled()) return "ERROR";
            else return hostName;
        }
        return null;
    }
}

对我来说重要的代码是

String hostName = ip[i].getHostName();

使用AsyncTask实现它的唯一原因是因为android不会让我在主线程中调用该函数。 前面的代码用在子程序中,该子程序包括以下代码

for (int i = 0; i < connectionCount; i++){
    statusList[i][0] = addressList[i].toString()  + "(" + new hostLookUp().execute(addressList[i]) + ")";;
    temp = connectionStatus (statusList[i][1]);
    statusList[i][1] = temp;
}

此子例程中,connectionCount是存储在InetAddress数组中的ip地址数。在这段代码中,我有一个String数组,它将ip地址与数组的第一个元素中的主机名一起转换为字符串。最后,position [0]将保存原始数组中所有InetAddresses的ip地址和主机名。查看文档,InetAdress.toString()应该提供主机名,但它不会这样做。我最终会发生什么

"/0.0.0.0(com.example.Test.MainActivity$hostLookUp@42244450)"

其中0.0.0.0是出现的IP地址,而42244450只是一些不断变化的数字。我只想要显示正确的主机名,为什么会显示应用程序名称?

0 个答案:

没有答案