ポート411で192.168.190.xxxから192.168.220.xxxまでのすべてのIPをスキャンする小さなスクリプトがあります。
スクリプトは正常に動作する場合がありますが、「使用可能なバッファスペースがありません」
dcport.rb:8:in
初期化エラーが発生する場合があります。':使用可能なバッファスペースがありません-connect(2)(Errno :: ENOBUFS) `
これは、ソケットが適切に閉じられていない場合に発生することを読みましたが、私は、適切にmysocket.close
機能しないと思われる問題を防止するために使用しました。
これを防ぐ方法、つまりソケットを適切に閉じる方法は?
私のコードは次のとおりです
require 'socket'
require 'timeout'
(190...216).each do |i|
(0...255).each do |j|
begin
#puts "Scanning 192.168.#{i}.#{j}"
scan=Timeout::timeout(10/1000.0) {
s=TCPSocket.new("192.168.#{i}.#{j}",411)
s.close
puts "192.168.#{i}.#{j} => Hub running"
}
rescue Timeout::Error
rescue Errno::ENETUNREACH
rescue Errno::ECONNREFUSED
end
end
end