㈠ linux防火牆設置 mac 過濾
我想樓主的理抄解有誤,IP 包中只包襲含了一個源 MAC (source MAC) 和一個目的地 MAC (dest MAC),不存在操作系統 MAC 這個說法。至於要過濾 MAC,linux 下的 netfilter 模塊搭配用戶模式下的 iptables 應用可以達到這個效果。比如:
iptables -A FORWARD -m mac --mac-source 00:17:31:BB:C5:DE -j ACCEPT
就是在轉發鏈當中允許對匹配該源 MAC 的 IP 包進行轉發。
具體的可以在終端界面中輸入:man 8 iptables 查詢用戶手冊。
㈡ Discuz! 文字過濾
方法一:
替換前的內容可以使用限定符 {x} 以限定相鄰兩字元間可忽略的文字,x 是忽略字元的個數。如 "a{1}s{2}s"(不含引號) 可以過濾 "ass" 也可過濾 "axsxs" 和 "axsxxs" 等等。
這個是Discuz官方提供的
方法二:
我安裝了discuz7.0,在他的文件中找到了過濾函數並改寫了它,使其能在過濾前先把所有的空格刪掉。
具體改法:
1.用記事本打開include目錄下的discuzcode.func.php文件
2.找到
if(preg_match($_DCACHE['censor']['banned'], @preg_replace(array("/\[($bbcodes)=?.*\]/iU", "/\[\/($bbcodes)\]/i"), '', $message).$message)) {
showmessage('word_banned');
}
在52行,你可以使用搜索功能(Ctrl+F)找到
3.在其前面增加一行
$message = str_replace(' ', '', $message);
這就是用來替換空格的
變成這樣
$bbcodes = 'b|i|u|color|size|font|align|list|indent|url|email|hide|quote|code|free|table|tr|td|img|swf|attach|payto|float'.($_DCACHE['bbcodes_display'] ? '|'.implode('|', array_keys($_DCACHE['bbcodes_display'])) : '');
$message = str_replace(' ', '', $message);
if(preg_match($_DCACHE['censor']['banned'], @preg_replace(array("/\[($bbcodes)=?.*\]/iU", "/\[\/($bbcodes)\]/i"), '', $message).$message)) {
showmessage('word_banned');
}
4.保存即可