Module: FFI::PCap
- Extended by:
- Library
- Defined in:
- lib/pcap/if.rb,
lib/pcap/ffi.rb,
lib/pcap/addr.rb,
lib/pcap/pcap.rb,
lib/pcap/stat.rb,
lib/pcap/dumper.rb,
lib/pcap/handler.rb,
lib/pcap/in_addr.rb,
lib/pcap/version.rb,
lib/pcap/time_val.rb,
lib/pcap/data_link.rb,
lib/pcap/sock_addr.rb,
lib/pcap/packets/ip.rb,
lib/pcap/file_header.rb,
lib/pcap/packets/tcp.rb,
lib/pcap/error_buffer.rb,
lib/pcap/sock_addr_in.rb,
lib/pcap/packet_header.rb,
lib/pcap/packets/ethernet.rb,
lib/pcap/exceptions/read_error.rb
Defined Under Namespace
Modules: Packets
Classes: Addr, DataLink, Dumper, ErrorBuffer, FileHeader, Handler, IF, InAddr, PacketHeader, ReadError, SockAddr, SockAddrIn, Stat, TimeVal
Constant Summary
collapse
- VERSION =
'0.1.0'
Class Method Summary
collapse
Class Method Details
.device ⇒ Object
13
14
15
16
17
18
19
20
21
|
# File 'lib/pcap/pcap.rb', line 13
def PCap.device
errbuf = ErrorBuffer.new
unless (name = PCap.pcap_lookupdev(errbuf))
raise(StandardError,errbuf.to_s,caller)
end
return name
end
|
.each_device(&block) ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/pcap/pcap.rb', line 23
def PCap.each_device(&block)
devices = MemoryPointer.new(:pointer)
errbuf = ErrorBuffer.new
PCap.pcap_findalldevs(devices,errbuf)
node = devices.get_pointer(0)
if node.null?
raise(StandardError,errbuf.to_s,caller)
end
device = IF.new(node)
until device
block.call(device) if block
device = device.next
end
PCap.pcap_freealldevs(node)
return nil
end
|
.lib_version ⇒ Object
9
10
11
|
# File 'lib/pcap/pcap.rb', line 9
def PCap.lib_version
PCap.pcap_lib_version
end
|
.open_dead(datalink, options = {}) ⇒ Object
65
66
67
68
69
70
|
# File 'lib/pcap/pcap.rb', line 65
def PCap.open_dead(datalink,options={})
datalink = DataLink[datalink]
snaplen = (options[:snaplen] || Handler::SNAPLEN)
return Handler.new(PCap.pcap_open_dead(datalink,snaplen),options)
end
|
.open_live(options = {}, &block) ⇒ Object
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/pcap/pcap.rb', line 45
def PCap.open_live(options={},&block)
device = options[:device]
promisc = if options[:promisc]
1
else
0
end
snaplen = (options[:snaplen] || Handler::SNAPLEN)
to_ms = (options[:timeout] || 0)
errbuf = ErrorBuffer.new
ptr = PCap.pcap_open_live(device,snaplen,promisc,to_ms,nil)
if ptr.null?
raise(StandardError,errbuf.to_s,caller)
end
return Handler.new(ptr,options,&block)
end
|
.open_offline(path, options = {}) ⇒ Object
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/pcap/pcap.rb', line 72
def PCap.open_offline(path,options={})
path = File.expand_path(path)
errbuf = ErrorBuffer.new
ptr = PCap.pcap_open_offline(path,errbuf)
if ptr.null?
raise(StandardError,errbuf.to_s,caller)
end
return Handler.new(ptr,options)
end
|