summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2015-02-06 17:04:27 -0700
committermo khan <mo@mokhan.ca>2015-02-06 17:04:27 -0700
commit55c6cc6d83391a98fe87898e8fdb8eb987de1e40 (patch)
tree19e694778016071de0a98b0af126a5043fb7dfed
parent0d938af572044200f4a1f23a7006268d53117358 (diff)
extract method to yield packets back from each capture.
-rw-r--r--lib/fake_agent.rb10
-rw-r--r--lib/tasks/agent.rake8
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