- 论坛徽章:
- 0
|
awk 版
- awk -F'/' '
- function initMaskTable(){
- _maskCount = 0;
- while ((getline < "mask") > 0) {
-
- if (split($1, arrMask, ".") != 4) continue;
- _mask1[maskCount] = arrMask[1];
- _mask2[maskCount] = arrMask[2];
- _mask3[maskCount] = arrMask[3];
- _mask4[maskCount] = arrMask[4];
- _maskCount++;
- }
- }
- function checkIP(pIP, i){
-
- if (split(pIP, arrIP, ".") != 4) return 0;
- for (i = 0; i < _maskCount; i++)
- if (checkMaskPart(_mask1[i], arrIP[1]) &&
- checkMaskPart(_mask2[i], arrIP[2]) &&
- checkMaskPart(_mask3[i], arrIP[3]) &&
- checkMaskPart(_mask4[i], arrIP[4])) return 1;
- return 0;
- }
- function checkMaskPart(pMaskPart, pIPPart){
- return and(pMaskPart, pIPPart) == pMaskPart;
- }
- BEGIN {
- initMaskTable();
- }
- {
- print $0 ": " (checkIP($0) ? "OK" : "FALSE");
- } urfile
复制代码 |
|