ANDi基于Ironpython, 是Python在DotNet上的实现。在ANDi里用Python来编写以太网代码,非常简单。
让我们先用ANDi发出第一个以太网报文:Hello World!
代码说明:
from globals import *
#create IPV4 message object
msg_eth=message_builder.create_ethernet_message('Sender','Receiver')
#parameterize the ethernet layer
msg_eth.mac_address_source=Sender.get_mac()
msg_eth.mac_address_destination="FF:FF:FF:FF:FF:FF"
#parameterize the payload
msg_eth.payload=System.Array[Byte](bytearray("Hello, World!"))
#send
msg_eth.send()
message_builder是ANDi自带API,能够通过它创建各种消息对象。本例创建了ethernet报文。
Sender和Receiver分别指用来发出或接收报文的网络适配器。在ANDi的Adapters Configuration里进行设置。Sender和Receiver这个名字可以按需要修改,将其映射到具体的网络适配器即可。
然后设置源MAC地址,和目的MAC地址。源地址是Sender所代表的网络适配器的地址,而目的地址是广播地址。
Payload设置时,需将Hello, World!由字符串变成字符数组。
最后通过send()方法发送出去。