lua文字マッチング
1523 ワード
次の形式のデータのsourceとMACアドレスを一致させます.
単純実装は、例えば、既知のフォーマットの場合、最も単純で迅速な方法でこの問題を解決する.
実行結果は次のようになります.
>lua -e "io.stdout:setvbuf 'no'""match.lua" nil nil nil nil 10.1.1.191 C4:6A:B7:6F:7A:AB 10.1.1.192 C4:6A:B7:6F:7A:BB 10.1.1.193 C4:6A:B7:6F:7A:CB 10.1.1.194 C4:6A:B7:6F:7A:DB >Exit code: 0
原理は以下の通りである.
http://www.cnitblog.com/kenlistian/archive/2008/10/15/50292.html
Chain WiFiDog_br-lan_Outgoing (1 references)
pkts bytes target prot opt in out source destination
705 109595 MARK all -- * * 10.1.1.191 0.0.0.0/0 MAC C4:6A:B7:6F:7A:AB MARK or 0x200
705 109595 MARK all -- * * 10.1.1.192 0.0.0.0/0 MAC C4:6A:B7:6F:7A:BB MARK or 0x200
705 109595 MARK all -- * * 10.1.1.193 0.0.0.0/0 MAC C4:6A:B7:6F:7A:CB MARK or 0x200
705 109595 MARK all -- * * 10.1.1.194 0.0.0.0/0 MAC C4:6A:B7:6F:7A:DB MARK or 0x200
単純実装は、例えば、既知のフォーマットの場合、最も単純で迅速な方法でこの問題を解決する.
local file
file = io.open("format", "r")
for line in file:lines() do
print(string.match(line, "%d+.%d+.%d+.%d+"))
print(string.match(line, "%x+:%x+:%x+:%x+:%x+:%x+"))
end
file:close()
実行結果は次のようになります.
>lua -e "io.stdout:setvbuf 'no'""match.lua" nil nil nil nil 10.1.1.191 C4:6A:B7:6F:7A:AB 10.1.1.192 C4:6A:B7:6F:7A:BB 10.1.1.193 C4:6A:B7:6F:7A:CB 10.1.1.194 C4:6A:B7:6F:7A:DB >Exit code: 0
原理は以下の通りである.
http://www.cnitblog.com/kenlistian/archive/2008/10/15/50292.html