Wifidog域名白名单,域名过滤支持:wifodog源码中fw_iptables.c
fw_iptables.c 中iptables_compile 函数修改:
if (rule->mask != NULL) {
char *mask=rule->mask;
int mask_len=strlen(mask);
int is_domain=0,
i=0;
for(;i<mask_len;i++){
if((mask[i]>=46&&mask[i]<=57)||mask[i]==32){
continue;
}else{
is_domain=1;
break;
}
}
char * ip =NULL;
if(is_domain){
struct in_addr * h_addr =wd_gethostbyname(mask);
if(h_addr){
ip= safe_strdup(inet_ntoa(*h_addr));
free(h_addr);
}
if(ip){
mask=ip;
}else{
debug(LOG_ERR, "doamin %s not find ip try again!",mas