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()方法发送出去。