📄 helpers_net.c
字号:
/*****************************************************************************;; Project : Edimax; Creator :; File : helpers_net.c; Abstract: Data conversion and formatting for network values;;*****************************************************************************/#include <ctype.h>#include <helpers.h>unsigned short ntohs(unsigned short s){ return (s >> 8) | (s << 8);}unsigned long ntohl(unsigned long l){ return ((l >> 24) & 0x000000ff) | ((l >> 8) & 0x0000ff00) | ((l << 8) & 0x00ff0000) | ((l << 24) & 0xff000000);}unsigned short htons(unsigned short s){ return (s >> 8) | (s << 8);}unsigned long htonl(unsigned long l){ return ((l >> 24) & 0x000000ff) | ((l >> 8) & 0x0000ff00) | ((l << 8) & 0x00ff0000) | ((l << 24) & 0xff000000);}int mactostr(char *mac, char *str){ int i, j = 0; char tmp[2]; for (i = 0; i < 6; i++) { btoa(mac[i], tmp); // sets 2 hex characters in 'tmp' str[j+0] = tmp[0]; str[j+1] = tmp[1]; if (i != 5) str[j+2] = '-'; // separator j = j + 3; } return 0;}int macscanf(char *mac, char *buf){ int i; UINT8 s, tmp; for (i = 0; i < 6; i++) { s = buf[i * 3]; if (s >= '0' && s <= '9') s = s - '0'; else if (s >= 'a' && s <= 'f') s = s - 'a' + 0x0A; else if (s >= 'A' && s <= 'F') s = s - 'A' + 0x0A; else break; tmp = (s << 4) & 0xF0; s = buf[i * 3 + 1]; if (s >= '0' && s <= '9') s = s - '0'; else if (s >= 'a' && s <= 'f') s = s - 'a' + 0x0A; else if (s >= 'A' && s <= 'F') s = s - 'A' + 0x0A; else break; tmp = tmp | (s & 0x0F); mac[i] = (UINT8) tmp; } return i;}int ipscanf(UINT32 *ipbuf, char *buf){ int i, j = 0; UINT32 tmp1 = 0, tmp2 = 0; *ipbuf = 0; for (i = 0; i < 4; i++) { while(buf[j] != '.') { if (buf[j] >= '0' && buf[j] <= '9') tmp1 = buf[j] - '0'; else break; tmp2 = tmp2 * 10 + tmp1; j++; } if (tmp2 > 255) break; *ipbuf = (*ipbuf) | (((char) tmp2 & 0xff) << (32 - (i + 1) * 8)); j++; tmp2 = 0; } return i;}void IpAddrToStr(UINT32 tmp_ip, char *str){ int i,j=0,k=0,remainder; UINT32 tmp; char s[3]; for (i = 0; i < 4; i++) { tmp = (int) (tmp_ip >> 32 - (i + 1) * 8) & 0x000000ff; while(1) { remainder = tmp % 10; tmp = (int) (tmp / 10); if ((remainder == 0) && (tmp == 0)) break; s[j] = remainder + '0'; j++; } if (i != 0) k++; if (j == 0) { str[k] = '0'; str[++k] = '.'; } else if (j == 1) { str[k] = s[0]; str[++k] = '.'; } else if (j == 2) { str[k] = s[1]; str[++k] = s[0]; str[++k] = '.'; } else if (j == 3) { str[k] = s[2]; str[++k] = s[1]; str[++k] = s[0]; str[++k] = '.'; } if (i == 3) str[k] = '\0'; else j = 0; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -