Top / 雑記 / 2008-03-27
雑記
以下、即興ですがclamavをデーモンで動作させた時に rubyでリモートから利用するためのプログラムです。 (例外処理とかは気にしないで只書いただけのソースです) 後ほど、ライブラリとして利用できる形にしたいと思います。
#!/usr/local/bin/ruby -Ku require( 'socket' ); recv = nil;TCPSocket.open( ARGV[ 0 ] , ARGV[ 1 ] ) { | socket | socket.sync = true; socket.print "SESSION\r\n"; socket.print "PING\r\n"; socket.print "STREAM\r\n"; socket.print "END\r\n"; recv = socket.sysread( 256 ); if( recv.chomp! == "PONG" ) recv = socket.sysread( 256 ); if( recv.chomp! =~ /PORT (\d+)/ ) TCPSocket.open( ARGV[ 0 ] , $1 ) { | inSocket | inSocket.binmode(); data = nil; File.open( ARGV[ 2 ] ) { | file | file.binmode(); data = file.read; } inSocket.puts( data ); } recv = socket.sysread( 1024 ); if( recv.chomp! =~ /^stream: (.+)$/ ) print $1,"\n"; end end end }
実行結果 [ken@hoge ruby]$ ./clamavclient.rb hoge01 3310 ./eicar.com Eicar-Test-Signature FOUND
カテゴリ: 雑記 プログラム
トップページ
プログラム) ・SQLTerm2ND ・LOTO6Checker ・JInstallermaker ・Judgement ・Judgement-Web ・DeliveryList イラスト) ・携帯電話用壁紙 ペット) ・ねこ ・いぬ ・フルーツバット ・フクロモモンガ ・ねずみ ・さかな ・カメ+イモリ 本) ・推理小説 ・ファンタジー ・読書ログ その他) ・雑記 リンク1) ・@KAWA ・phpspot *相互リンク募集中 リンク2)
Contact) ・ken