我在局域网中有一台计算机,我想通过手机上的名字获取其IP地址。我了解到使用InetAddress会给我IP。
如果我使用浏览器,我可以看到电脑。
我使用了以下代码:
InetAddress address = InetAddress.getByName("computer1");
if(address!=null)
Log.w("DEBUG",address.getHostAddress().toString());
else
Log.w("DEBUG","No ip found");
我得到的只是一个例外:
java.net.UnknownHostException
at java.net.InetAddress.lookupHostByName(InetAddress.java:506)
at java.net.InetAddress.getAllByNameImpl(InetAddress.java:294)
at java.net.InetAddress.getByName(InetAddress.java:325)
at com.example.Data.BGTask.AdatSzinkronizalas(DataTask.java:470)
at com.example.Data.BGTask.doInBackground(DataTask.java:237)
at com.example.Data.BGTask.doInBackground(DataTask.java:51)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1019)
我还应该使用什么?
答案 0 :(得分:0)
我认为你使用的是好的。当应用程序执行查找时,“computer1”似乎无法解析。确保设备的DNS服务器能够解析您尝试引用的主机名。
答案 1 :(得分:0)
看来,我必须使用计算机的完整域名来获取其IP地址。而不是
电脑1
我必须使用
computer1.mydomain.local
有了这个,Android就能够获得IP地址。我想知道全名只在AD环境中是强制性的,或者任何一台PC都应该使用某种全名。