diff options
| -rw-r--r-- | lib/fake_agent.rb | 10 | ||||
| -rw-r--r-- | lib/tasks/agent.rake | 8 |
2 files changed, 14 insertions, 4 deletions
diff --git a/lib/fake_agent.rb b/lib/fake_agent.rb index 227ae2b..1f8b221 100644 --- a/lib/fake_agent.rb +++ b/lib/fake_agent.rb @@ -45,7 +45,15 @@ class FakeAgent capture.stream.each do |p| packet = Packet.parse(p) if packet.is_ip? - next if packet.ip_saddr == Utils.ifconfig(interface)[:ip_saddr] + yield packet if block_given? + end + end + end + + def packet_capture(interface) + sniff(interface) do |packet| + if packet.ip_saddr == Utils.ifconfig(interface)[:ip_saddr] + else packet_info = [packet.ip_saddr, packet.ip_daddr, packet.size, packet.proto.last] puts "%-15s -> %-15s %-4d %s" % packet_info end diff --git a/lib/tasks/agent.rake b/lib/tasks/agent.rake index 26d3982..1857454 100644 --- a/lib/tasks/agent.rake +++ b/lib/tasks/agent.rake @@ -15,8 +15,10 @@ namespace :agent do end desc "scan network traffic" - task nfm: :environment do - agent = FakeAgent.new(Agent.first.id, ENDPOINT) - agent.sniff('en1') + task :nfm do + id = Agent.first.id + agent = FakeAgent.new(id, ENDPOINT) + + agent.packet_capture('eth0') end end |
