路由器中文SSID測試與分析

2021-06-23 01:39:38 字數 1407 閱讀 9059

以ralink sdk中的goahead為例:

web/wireless/basic.asp中,有設定ssid的ui**,form關鍵內容如下:

這個action定義在src/wireless.c中

/* goform/wirelessbasic */

static void wirelessbasic(webs_t wp, char_t *path, char_t *query);

**中,先讀取使用者提交的ssid:

mssid_1 = websgetvar(wp, t("mssid_1"), t(""));

然後寫入nvram:

nvram_bufset(rt2860_nvram, racat("ssid", i), mssid_1);

nvram_bufset函式位於lib/libnvram/nvram_env.c中

ssid用utf-8格式儲存,而中文版windows由於其歷史原因,一直沿用gb2312作為其預設漢字編碼格式。

bufset 0 'ssid1'->'中文測試'

hexdump value: e4,b8,ad,e6,96,87,e6,b5,8b,e8,af,95,

修改**,加入hex string轉義:

int pos = 0;
char str[33] = ;
for(;;pos++)
nvram_bufset(rt2860_nvram, racat("ssid", i), str);

測試結果如下:

efbbbfe4b8ade69687 utf-8,手機正常,win7直接顯示ef.....

e4b8ade69687 手機正常,win7亂碼(涓 。。)openwrt系統採用的方式

fffe2d4e8765 utf-16,手機亂碼,win7顯示ff....

2d4e8765 utf-16無bom,手機亂碼,win7亂碼

d6d0cec4 gbk,  手機亂碼,win7正常

0102d6d0cec4 gbk,  手機亂碼(前面有空白字元),win7正常(說明win7對gbk有容錯性)

0100d6d0cec4 gbk,  手機空白字元,win7找不到該ap()

總結:

手機端:        正規utf-8編碼方式(op截斷了前導,會導致windows亂碼)

windows端:    gbk編碼方式,手機端亂碼(無法避免)

windows端能夠識別正規utf-8或者utf-16的中文ssid,只是會直接把其hex顯示出來

路由器與路由協議

路由是什麼 一般代指從源主機到目標主機的 過程 路由器的作用 1.將資料報 到正確的目的地 2.在 過程中根據路由表選擇通過網路的最佳路徑 路由表的定義 1.路由器中維護的路由條目的集合 2.路由器根據路由表做路徑選擇 注釋 對於非直連的網段,需要靜態路由或動態路由,將網段新增到路由表中 選取最優路...

廣播與路由器

路由器是iso模型中的第三層,所以每一埠都有一ip,並且路由器是不過廣播的。路由器每一埠是乙個廣播域,交換機每一埠是一衝突域。一般家庭用路由器其實是乙個集線器加乙個撥號上網貓。工作組視窗是基於廣播的。socket廣播通訊 client端 如下 設定socket socket1 socket af i...

路由器與「交換」

路由器是實現分組交換 packet switching 的關鍵構件,其任務是 收到的分組,這是網路核心部分最重要的功能。在路由器中的輸入和輸出埠之間沒有直接連線。含義 交換 switching 的含義就是轉接 把一條 線轉接到另一條 線,使它們連通起來。而從通訊資源的分配角度來看,交換 就是按照某種...