-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.py
More file actions
40 lines (34 loc) · 1.17 KB
/
test.py
File metadata and controls
40 lines (34 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from pycap import *
from select import select
from scapy.all import Ether, IP, UDP, Raw
pcap = pycap_create(b"veth1", errbuf=bytearray(256))
status = pycap_set_snaplen(pcap, 65536)
status = pycap_set_promisc(pcap, True)
status = pycap_set_immediate_mode(pcap, True)
status = pycap_activate(pcap)
status = pycap_setnonblock(pcap, False, errbuf=bytearray(256))
status = pycap_setdirection(pcap, PYCAP_D_IN)
devfd = pycap_get_selectable_fd(pcap)
def main():
#packet_tx = Ether(dst="a0:aa:aa:aa:aa:aa", src="b0:bb:bb:bb:bb:bb") / \
# IP(src="1.1.1.1", dst="2.2.2.2") / \
# UDP(sport=2111, dport=2222) / \
# Raw("Hello PyCap")
#
#for i in range(10):
# status = pycap_sendpacket(pcap, bytes(packet_tx), len(packet_tx))
counter = 0
while True:
(rlist, wlist, xlist) = select([devfd], [], [], 1.0)
if len(rlist) == 0: continue
data = pycap_next_ex(pcap)
if len(data) == 0: continue # 0x9000 loopback keepalive
packet_rx = Ether(data)
packet_rx.show()
counter += 1
print("-"*20 + f" {counter} " + "-"*20)
return
try:
main()
except KeyboardInterrupt:
print() # \n