最新有一個需求:
** 客戶端視頻播放錯誤的時候希望加入一個錯誤檢測功能.其中有一項就是希望可以客戶端發(fā)起一個請求獲得與視頻服務(wù)器DNS以便服務(wù)端對視頻進(jìn)行轉(zhuǎn)發(fā)優(yōu)化。**
我們首先就是想到了Linux下nslookup和dig命令,經(jīng)過測試在adb shell環(huán)境下測試發(fā)現(xiàn)并不支持以上兩種命令。
通過大量搜索對比發(fā)現(xiàn)了以下三種方式:
利用so庫 執(zhí)行底層的命令
安裝Linux層第三方庫,使Android系統(tǒng)支持上述命令
這兩種方法分別有他們的缺點so庫麻煩,并且體積大,而第二種方式需要root權(quán)限
所以以上兩種方法都被略過。
使用dnsjava庫
官網(wǎng):dnsjava
代碼:
Lookp lookup = new Lookup(www.domain.com", Type.A);
lookup.run();
if (lookup.getResult() != Lookup.SUCCESSFUL) {
System.out.println("ERROR: " + lookup.getErrorString());
return;
}
Record[] answers = lookup.getAnswers();
for (final Record rec : answers) {
System.out.println(rec.toString());
}