日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 以太网子网掩码长度 bug 修复

發(fā)布時(shí)間:2023/12/20 Android 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 以太网子网掩码长度 bug 修复 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

這個(gè)bug說起來還是我自己搞出來的,之前每次版本遷徙都是參考修改記錄同步移植以太網(wǎng)這塊,

所以從一開始就有這個(gè)問題。

mStaticIpConfiguration.ipAddress = new LinkAddress(InetAddress.getByName(text), 24);

每次應(yīng)用層設(shè)置都是固定值 24 ,導(dǎo)致 framework 接收到的就是錯(cuò)誤值。正確的做法為根據(jù)設(shè)置的

子網(wǎng)掩碼值去計(jì)算對應(yīng)長度。

子網(wǎng)掩碼長度對照表

關(guān)于IP地址,子網(wǎng)掩碼,子網(wǎng)前綴長度,路由表的的算法介紹可參考這篇

IP地址,子網(wǎng)掩碼,子網(wǎng)前綴長度,路由表的的算法

解決辦法

編寫算法計(jì)算子網(wǎng)掩碼長度

private int calcNetMaskInt(String netMask) {Log.d("cnetMask", "netMask =" + netMask);StringBuffer sbf;String str;int prefixLength = 0, count = 0; String[] split = netMask.split("\\.");for (int n = 0; n < split.length; n++) {sbf = toBin(Integer.parseInt(split[n]));str = sbf.reverse().toString();//Log.e("net", split[n] + "===" + str);count = 0;for (int i = 0; i < str.length(); i++) {i = str.indexOf('1', i); if (i == -1) {break;}count++; }prefixLength += count;}Log.e("cnetMask", "netMask prefixLength=" + prefixLength);return prefixLength; }

參考

java實(shí)現(xiàn)子網(wǎng)掩碼轉(zhuǎn)換為網(wǎng)絡(luò)標(biāo)識位

總結(jié)

以上是生活随笔為你收集整理的Android 以太网子网掩码长度 bug 修复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。