最新有一個(gè)需求:
** 客戶端視頻播放錯(cuò)誤的時(shí)候希望加入一個(gè)錯(cuò)誤檢測(cè)功能.其中有一項(xiàng)就是希望可以客戶端發(fā)起一個(gè)請(qǐng)求獲得與視頻服務(wù)器DNS以便服務(wù)端對(duì)視頻進(jìn)行轉(zhuǎn)發(fā)優(yōu)化。**
我們首先就是想到了Linux下nslookup和dig命令,經(jīng)過(guò)測(cè)試在adb shell環(huán)境下測(cè)試發(fā)現(xiàn)并不支持以上兩種命令。
通過(guò)大量搜索對(duì)比發(fā)現(xiàn)了以下三種方式:
利用so庫(kù) 執(zhí)行底層的命令
安裝Linux層第三方庫(kù),使Android系統(tǒng)支持上述命令
這兩種方法分別有他們的缺點(diǎn)so庫(kù)麻煩,并且體積大,而第二種方式需要root權(quán)限
所以以上兩種方法都被略過(guò)。
使用dnsjava庫(kù)
官網(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());
}