来自:https://blog.csdn.net/msgsnd/article/details/2122440
文章结尾部分为自己总结使用的tips。
sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。
函数原型:
int scanf( const char *format [,argument]… );
其中的format可以是一个或多个:
{%[*] [width] [{h|l|I64|L}] type|’_’|’/t’|’/n’|非%符号},
注:{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。
width:宽度,一般可以忽略,用法如:
const char sourceStr[] = “hello, world”;
char buf[10] = {0};
sscanf(sourceStr, “%5s”, buf); //%5s,只取5个字符
cout << buf<< endl;
结果为:hello
{h|I|I64|L}:参数的size,通常h表示单字节size,I表示2字节 size, L表示4字节size(double例外),l64表示8字节size。
type :这就很多了,就是%s,%d之类。
特别的:%*[width] [{h|l|I64|L}]type 表示满足该条件的被过滤掉,不会向目标参数中写入值。如:
const char sourceStr[] = “hello, world”;
char buf[10] = {0};
sscanf(sourceStr, “%*s%s”, buf);
//%*s表示第一个匹配到的%s被过滤掉,即hello被过滤了
cout << buf<< endl;
结果为:world
支持集合操作:
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
%[aB’] 匹配a、B、’中一员,贪婪性
%[^a] 匹配非a的任意字符,贪婪性
和正则表达式很相似,而且仍然支持过滤,即可以有%*[a-z]。
例子:
- 常见用法。
char buf[512] = {0};
sscanf("123456 ", "%s", buf);
printf("%s/n", buf);
结果为:123456
- 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
sscanf("123456 ", "%4s", buf);
printf("%s/n", buf);
结果为:1234
- 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。
sscanf("123456 abcdedf", "%[^ ]", buf);
printf("%s/n", buf);
结果为:123456
- 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);
printf("%s/n", buf);
结果为:123456abcdedf
- 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);
printf("%s/n", buf);
结果为:123456abcdedf
6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,先将 “iios/”过滤掉,再将非’@’的一串内容送到buf中
sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);
printf("%s/n", buf);
结果为:12DDWDFF
7、给定一个字符串““hello, world”,仅保留world。(注意:“,”之后有一空格)
sscanf(“hello, world”, "%*s%s", buf);
printf("%s/n", buf);
结果为:world
%*s表示第一个匹配到的%s被过滤掉,即hello被过滤了,如果没有空格则结果为NULL。
8、分隔字符串2006:03:18:
int a, b, c;
sscanf("2006:03:18", "%d:%d:%d", a, b, c);
9、分隔字符串2006:03:18 - 2006:04:18:
char sztime1[16] = "", sztime2[16] = "";
sscanf("2006:03:18 - 2006:04:18", "%s - %s", sztime1, sztime2);
10、分隔字符串2006:03:18-2006:04:18:
char sztime1[16] = "", sztime2[16] = "";
sscanf("2006:03:18-2006:04:18", "%[0-9,:] - %[0-9,:]", sztime1, sztime2);
仅仅是取消了‘-’两边的空格,却打破了%s对字符串的界定format-type中有%[]这样的type field。如果读取的字符串,不是以空格来分隔的话,就可以使用%[]。%[]类似于一个正则表达式。[a-z]表示读取a-z的所有字符,[^a-z]表示读取除a-z以外的所有字符。
sscanf的功能很类似于正则表达式, 但却没有正则表达式强大,所以如果对于比较复杂的字符串处理,建议使用正则表达式.
正则表达式的基本用法:
1、“.”为通配符,表示任何一个字符,例如:“a.c”可以匹配“anc”、“abc”、“acc”;
2、“[]”,在[]内可以指定要求匹配的字符,例如:“a[nbc]c”可以匹配“anc”、“abc”、”acc”;但不可以匹配“ancc”,a到z可以写成[a-z],0到9可以写成[0-9];
3、数量限定符号,表示匹配次数(或者叫做长度)的符号,包括:
“*” 0次或者多次
“+” 1次或者多次
“?” 0次或者1次
“{n}” 匹配n次,n为整数
“{n,m}” 匹配从n到m之间的某个数的次数;n和m都是整数;
“{n,}” 匹配n到无穷次之间任意次数;
“{,m}” 匹配0到m之间任意次数;
数量限定符号放到匹配格式的后面,例如:电话号码:024-84820482,02484820482(假设前面3或者4位,后面7或者8位,并且中间的减号可有可无),都是符合规定的,那么可以用如下格式来匹配:[0-9]{3,4} /-? [0-9]{7,8};注意:“/”为转义字符,因为“-”在正则表达式用有代表一个范围的意义,例如:前面所说的[0-9],所以它需要转义字符“/”进行转义才可使用;
4、^为否符号,表示不想匹配的符号,例如:[^z][a-z]+可以匹配所有除”z”开头的以外的所有字
如果^放到[]的外边则表示以[]开头的字符串;^[az][a-z]+表示a或者z开头的长度大于等于2的英文字符串;
5、“|”或运算符,例如:a[n|bc|cb]c可以匹配“abcc”,“anc”,“acbc”;
6、“ ”以它前面的字符结尾的;例如:ab+ ” 以 它 前 面 的 字 符 结 尾 的 ; 例 如 : a b + 就可以被“abb”,“ab”匹配;
7、一些简单表示方法:/d表示[0-9];/D表示[^0-9];/w表示[A-Z0-9];/W表示[^A-Z0-9];/s表示[/t/n/r/f],就是空格字符包括tab,空格等等;/S表示[^/t/n/r/f],就是非空格字符;
%[^a] 匹配非a的任意字符,贪婪性
sscanf("123456 abcdedf", "%[^ ]", buf);
printf("%s/n", buf);
结果为:123456
在字符串iios/12DDWDFF@122
中获取12DDWDFF
%*[^/]/匹配到 /
%[^@]匹配到@
sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);
printf("%s/n", buf);
结果为:12DDWDFF
获取channel
在字符串Mode:Managed Channel=36 Access Point: 34:BA:9A:64:04:49
中获取36
%*[^=]=匹配到 =,我们要获取的是36,而不是=36,所以会有=]
后多一个=
%[^A]匹配到A
sscanf("Mode:Managed Channel=36 Access Point: 34:BA:9A:64:04:49", "%*[^=]=%[^A]\n", tempstr);
printf("tempstr:%s\n", tempstr);
tempstr:36
一些测试
aplist文件内容:
wlan0 Scan completed :
Cell 01 - Address: 34:BA:9A:64:04:48
ESSID:"FURRIONAP_640448"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.422 GHz (Channel 3)
Encryption key:on
Bit Rates:300 Mb/s
Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=77/100 Signal level=-59 dBm
Extra:fm=0003
Cell 02 - Address: 06:69:6C:25:09:96
ESSID:"Guest"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.412 GHz (Channel 1)
Encryption key:on
Bit Rates:144 Mb/s
Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=76/100 Signal level=-90 dBm
Extra:fm=0003
Cell 03 - Address: 0A:69:6C:25:09:96
ESSID:"STAFF"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.412 GHz (Channel 1)
Encryption key:on
Bit Rates:144 Mb/s
Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=99/100 Signal level=-93 dBm
Extra:fm=0003
Cell 04 - Address: 34:BA:9A:20:65:04
ESSID:"Internet_Domowy_206504"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.437 GHz (Channel 6)
Encryption key:on
Bit Rates:300 Mb/s
Extra:rsn_ie=30140100000fac040100000fac040100000fac020000
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: Unknown: DDA70050F204104A0001101044000102103B000103104700102880288028801880A88034BA9A2065041021001852616C696E6B20546563686E6F6C6F67792C20436F72702E1023001C52616C696E6B20576972656C6573732041636365737320506F696E74102400065254323836301042000831323334353637381054000800060050F20400011011000952616C696E6B41505310080002210C103C0001011049000600372A000120
Quality=100/100 Signal level=-78 dBm
Extra:fm=0003
Cell 05 - Address: 06:69:6C:25:06:56
ESSID:"Guest"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.412 GHz (Channel 1)
Encryption key:on
Bit Rates:144 Mb/s
Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=100/100 Signal level=-86 dBm
Extra:fm=0001
Cell 06 - Address: 00:11:22:33:44:55
ESSID:"Internet_Domowy_334455"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.412 GHz (Channel 1)
Encryption key:on
Bit Rates:300 Mb/s
Extra:rsn_ie=30140100000fac040100000fac040100000fac020000
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: Unknown: DDA70050F204104A0001101044000101103B000103104700102880288028801880A8800011223344551021001852616C696E6B20546563686E6F6C6F67792C20436F72702E1023001C52616C696E6B20576972656C6573732041636365737320506F696E74102400065254323836301042000831323334353637381054000800060050F20400011011000952616C696E6B41505310080002210C103C0001011049000600372A000120
Quality=100/100 Signal level=-76 dBm
Extra:fm=0003
Cell 07 - Address: 34:BA:9A:5D:EF:42
ESSID:"Internet_Domowy_5DEF42"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.412 GHz (Channel 1)
Encryption key:on
Bit Rates:300 Mb/s
Extra:rsn_ie=30140100000fac040100000fac040100000fac020000
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: Unknown: DDA70050F204104A0001101044000101103B000103104700102880288028801880A88034BA9A5DEF421021001852616C696E6B20546563686E6F6C6F67792C20436F72702E1023001C52616C696E6B20576972656C6573732041636365737320506F696E74102400065254323836301042000831323334353637381054000800060050F20400011011000952616C696E6B41505310080002210C103C0001011049000600372A000120
Quality=100/100 Signal level=-90 dBm
Extra:fm=0003
Cell 08 - Address: 0A:69:6C:25:06:56
ESSID:"STAFF"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.412 GHz (Channel 1)
Encryption key:on
Bit Rates:144 Mb/s
Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=0/100 Signal level=-90 dBm
Extra:fm=0001
Cell 09 - Address: 50:04:B8:53:0D:F8
ESSID:"HUAWEI-BEVAQ8"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.437 GHz (Channel 6)
Encryption key:off
Bit Rates:300 Mb/s
IE: Unknown: DDA60050F204104A0001101044000102103B00010310470010630412531019200612285004B8530DFC1021001B5265616C74656B2053656D69636F6E647563746F7220436F72702E1023000752544C387878781024000D45562D323031302D30392D32301042000F3132333435363738393031323334371054000800060050F2040001101100114144534C204D6F64656D2F526F757465721008000206801049000600372A000120
Quality=36/100 Signal level=-79 dBm
Extra:fm=0003
Cell 10 - Address: 38:37:8B:92:2E:2C
ESSID:"Atel_JG"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.437 GHz (Channel 6)
Encryption key:on
Bit Rates:300 Mb/s
Extra:rsn_ie=30140100000fac040100000fac040100000fac020000
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: Unknown: DDA60050F204104A0001101044000102103B000103104700106304125310192006122838378B922E301021001B5265616C74656B2053656D69636F6E647563746F7220436F72702E1023000752544C387878781024000D45562D323031302D30392D32301042000F3132333435363738393031323334371054000800060050F2040001101100114144534C204D6F64656D2F526F757465721008000206801049000600372A000120
Quality=100/100 Signal level=-78 dBm
Extra:fm=0003
Cell 11 - Address: 1C:15:1F:27:62:D8
ESSID:"LHE"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.437 GHz (Channel 6)
Encryption key:on
Bit Rates:300 Mb/s
Extra:rsn_ie=30140100000fac040100000fac040100000fac020000
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: Unknown: DD470050F204104A0001101044000102101100114144534C204D6F64656D2F526F7574657210080002068010470010630412531019200612281C151F2762DC1049000600372A000120
Quality=68/100 Signal level=-96 dBm
Extra:fm=0001
Cell 12 - Address: 34:BA:9A:63:78:5A
ESSID:"PLDT_Home_jjjjjjjjjj"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.457 GHz (Channel 10)
Encryption key:on
Bit Rates:300 Mb/s
Extra:wpa_ie=dd1a0050f20101000050f20202000050f2020050f20401000050f202
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
IE: Unknown: DDA70050F204104A0001101044000102103B000103104700102880288028801880A88034BA9A63785A1021001852616C696E6B20546563686E6F6C6F67792C20436F72702E1023001C52616C696E6B20576972656C6573732041636365737320506F696E74102400065254323836301042000831323334353637381054000800060050F20400011011000952616C696E6B41505310080002218C103C0001011049000600372A000120
Quality=66/100 Signal level=-90 dBm
Extra:fm=0003
Cell 13 - Address: 34:BA:9A:5D:FA:F8
ESSID:"PT30-WP"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.452 GHz (Channel 9)
Encryption key:on
Bit Rates:300 Mb/s
Extra:rsn_ie=30140100000fac040100000fac040100000fac020000
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: Unknown: DD310050F204104A0001101044000102104700102880288028801880A88034BA9A5DFAF8103C0001011049000600372A000120
Quality=97/100 Signal level=-90 dBm
Extra:fm=0001
Cell 14 - Address: 06:AA:BB:CC:00:06
ESSID:"FURRIONAP_CC0006"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.467 GHz (Channel 12)
Encryption key:on
Bit Rates:300 Mb/s
Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=20/100 Signal level=-91 dBm
Extra:fm=0003
Cell 15 - Address: 34:BA:9A:5D:13:35
ESSID:"FURRIONAP_5D1335"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.472 GHz (Channel 13)
Encryption key:on
Bit Rates:300 Mb/s
Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=34/100 Signal level=-93 dBm
Extra:fm=0003
Cell 16 - Address: EC:26:CA:86:A9:8C
ESSID:"ASA"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.462 GHz (Channel 11)
Encryption key:on
Bit Rates:300 Mb/s
Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=15/100 Signal level=-96 dBm
Extra:fm=0003
Cell 17 - Address: 34:BA:9A:5D:F3:1B
ESSID:"ALR-F30G-5DF31B"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.472 GHz (Channel 13)
Encryption key:on
Bit Rates:300 Mb/s
Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=20/100 Signal level=-85 dBm
Extra:fm=0001
Cell 18 - Address: 34:BA:9A:65:43:21
ESSID:"FURRIONAP_654321"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.472 GHz (Channel 13)
Encryption key:on
Bit Rates:300 Mb/s
Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=100/100 Signal level=-77 dBm
Extra:fm=0003
Cell 19 - Address: 28:80:A2:1B:88:40
ESSID:"skyus_testing_xs"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.472 GHz (Channel 13)
Encryption key:on
Bit Rates:72 Mb/s
Extra:rsn_ie=30140100000fac040100000fac040100000fac020c00
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Quality=58/100 Signal level=-99 dBm
Extra:fm=0003
json_object* get_apconflist()
{
int index,count=0,i;
char str[512]={0};
char tempstr[256]={0};
FILE *fp;
//char aplist[20][5][1024];
json_object* getapconf_array_list;
getapconf_array_list = json_object_new_array();
my_printf(LOG_MODE_LEVEL_1, "%s(%d) get_apconflist\n",__FUNCTION__,__LINE__);
system("iwlist wlan0 scan > /tmp/aplist");
if ((fp=fopen("/tmp/aplist","r"))!=NULL)
{
while (fgets(str, 512, fp) != NULL)
{
if(strstr(str,"Cell") != NULL)
{
count++;
}
}
fclose(fp);
my_printf(LOG_MODE_LEVEL_1, "%s(%d) count is %d\n",__FUNCTION__,__LINE__,count);
}
if ((fp=fopen("/tmp/aplist","r"))!=NULL)
{
APLIST aplist[count];
for(i=0;i<count;i++)
{
json_object *rsp_json = NULL;
rsp_json = json_object_new_object();
CHECK_NEW_JSON(rsp_json);
my_printf(LOG_MODE_LEVEL_1, "%s(%d) for is ok\n",__FUNCTION__,__LINE__);
while (fgets(str, 512, fp) != NULL)
{
if(strstr(str, "Address:")) // Address: 06:69:6C:25:09:96
{
sscanf(str,"%*[^:]: %[^\n]\n",tempstr);
my_printf(LOG_MODE_LEVEL_1, "%s(%d) tempstr is %s\n",__FUNCTION__,__LINE__,tempstr);
strcpy(aplist[i].bssid,tempstr);
json_object_object_add(rsp_json, "index", json_object_new_int(i+1));
json_object_object_add(rsp_json, "bssid", json_object_new_string(aplist[i].bssid));
my_printf(LOG_MODE_LEVEL_1, "%s(%d) bssid is %s\n",__FUNCTION__,__LINE__,aplist[i].bssid);
}
if(strstr(str, "ESSID:")) // ESSID:"FURRIONAP_640448"
{
sscanf(str,"%*[^\"]\" %[^\"]\n",tempstr);
my_printf(LOG_MODE_LEVEL_1, "%s(%d) tempstr is %s\n",__FUNCTION__,__LINE__,tempstr);
strcpy(aplist[i].ssid,tempstr);
json_object_object_add(rsp_json, "ssid", json_object_new_string(aplist[i].ssid));
my_printf(LOG_MODE_LEVEL_1, "%s(%d) ssid is %s\n",__FUNCTION__,__LINE__,aplist[i].ssid);
}
if(strstr(str, "Frequency:")) // Frequency:2.412 GHz (Channel 1)
{
sscanf(str,"%*[^l]l %[^)]\n",tempstr);
my_printf(LOG_MODE_LEVEL_1, "%s(%d) tempstr is %s\n",__FUNCTION__,__LINE__,tempstr);
strcpy(aplist[i].channel,tempstr);
json_object_object_add(rsp_json, "channel", json_object_new_string(aplist[i].channel));
my_printf(LOG_MODE_LEVEL_1, "%s(%d) channel is %s\n",__FUNCTION__,__LINE__,aplist[i].channel);
}
if(strstr(str, "Encryption key:")) // Encryption key:on
{
sscanf(str,"%*[^:]: %[^\n]\n",tempstr);
my_printf(LOG_MODE_LEVEL_1, "%s(%d) tempstr is %s\n",__FUNCTION__,__LINE__,tempstr);
if(strstr(tempstr,"off"))
{
strcpy(aplist[i].security_mode,"Disable");
json_object_object_add(rsp_json, "security_mode", json_object_new_string(aplist[i].security_mode));
my_printf(LOG_MODE_LEVEL_1, "%s(%d) security_mode is %s\n",__FUNCTION__,__LINE__,aplist[i].security_mode);
}
}
if(strstr(str,"WPA Version")) //IE: WPA Version 1
{
strcpy(aplist[i].security_mode,"WPA1PSK");
my_printf(LOG_MODE_LEVEL_1, "%s(%d) security_mode is %s\n",__FUNCTION__,__LINE__,aplist[i].security_mode);
}
if(strstr(str,"802.11i/WPA2 Version")) //IE: IEEE 802.11i/WPA2 Version 1
{
if(strstr(aplist[i].security_mode,"WPA1PSK"))
{
strcat(aplist[i].security_mode,"WPA2PSK");
my_printf(LOG_MODE_LEVEL_1, "%s(%d) security_mode is %s\n",__FUNCTION__,__LINE__,aplist[i].security_mode);
}
else
{
strcpy(aplist[i].security_mode,"WPA2PSK");
my_printf(LOG_MODE_LEVEL_1, "%s(%d) security_mode is %s\n",__FUNCTION__,__LINE__,aplist[i].security_mode);
}
}
if(strstr(str,"Pairwise Ciphers")) //Pairwise Ciphers (1) : CCMP
{
if(strstr(aplist[i].security_mode,"WPA1PSK"))
{
sscanf(str,"%*[^:]: %[^\n]\n",tempstr);
if(strstr(tempstr,"TKIP CCMP"))
{
strcpy(aplist[i].security_mode,"WPA1PSK/TKIPAES");
}
else
strcpy(aplist[i].security_mode,"WPA1PSK/AES");
}
if(strstr(aplist[i].security_mode,"WPA2PSK"))
{
sscanf(str,"%*[^:]: %[^\n]\n",tempstr);
if(strstr(tempstr,"TKIP CCMP"))
{
strcpy(aplist[i].security_mode,"WPA1PSKWPA2PSK/TKIPAES");
}
else
strcpy(aplist[i].security_mode,"WPA1PSKWPA2PSK/AES");
}
json_object_object_add(rsp_json, "security_mode", json_object_new_string(aplist[i].security_mode));
my_printf(LOG_MODE_LEVEL_1, "%s(%d) security_mode is %s\n",__FUNCTION__,__LINE__,aplist[i].security_mode);
}
if(strstr(str, "Signal level")) // Signal level=-59 dBm
{
sscanf(str,"%*[^-]%[^\n]\n",tempstr);
my_printf(LOG_MODE_LEVEL_1, "%s(%d) tempstr is %s\n",__FUNCTION__,__LINE__,tempstr);
strcpy(aplist[i].signLevel,tempstr);
json_object_object_add(rsp_json, "signLevel", json_object_new_string(aplist[i].signLevel));
my_printf(LOG_MODE_LEVEL_1, "%s(%d) signLevel is %s\n",__FUNCTION__,__LINE__,aplist[i].signLevel);
my_printf(LOG_MODE_LEVEL_1, "%s(%d) final_rsp_json %s\n",__FUNCTION__,__LINE__,json_object_to_json_string(rsp_json));
json_object_array_add(getapconf_array_list,rsp_json);
break;
}
}
}
}
fclose(fp);
// my_printf(LOG_MODE_LEVEL_1, "%s(%d) final_json %s\n",__FUNCTION__,__LINE__,json_object_to_json_string(getapconf_array_list));
return getapconf_array_list;
}