普通linux平台上直接读取resolve.conf就可以了,但是android使用key value数据库中的net.dns1以及net.dns2这两个key来代替了这个文件。
adb shell之后通过getprop查看属性,确实有:
[net.dns1]: [a.b.c.d]
[dhcp.eth0.dns1]: [a.b.c.d]
现在我想知道如何用c或者c++代码获取默认DNS服务器的ip?(即上面的a.b.c.d)因为我正在用socket编程做一个DNS resolver,需要与DNS服务器通信。
谢谢大家!!
话说android-x86/external/busybox/networking/nslookup.c里面似乎用两行就完成了这个操作:
sa = (struct sockaddr*)&_res.nsaddr_list[0];
server = xmalloc_sockaddr2dotted_noport(sa);
但是需要包含/android-x86/external/busybox/include/libbb.h文件,包含之后编译libbb.h出错,哎...
------最佳解决方案--------------------
jni么,看看ndk的so们有没有你需要的.
------其他解决方案--------------------
不是吧 大家没有遇到过这个问题吗?
------其他解决方案--------------------
该回复于2011-04-14 09:18:31被版主删除
------其他解决方案--------------------
学习下,我在做的pppoe和这个有点关系,不知道用不用的上
------其他解决方案--------------------
你学习到了什么吗。。。
------其他解决方案--------------------
我知道了,看看这个:http://rxwen.blogspot.com/2010/01/android-property-system.html#
------其他解决方案--------------------
可以尝试在java程序中调用linux命令行命令的方式获取dns的ip地址
------其他解决方案--------------------
解决了吗,求方法能贴出来吗