模拟虚拟主机以进行UDP通信

时间:2014-07-23 16:19:31

标签: udp virtualization

首先,这个问题与Apache中的虚拟主机无关。

我的网络地址如下:1.1.1.0

我在这个网络上有几个主机:1.1.1.1,1.1.1.2,1.1.1.3和1.1.1.4

第一个主机发送广播UDP paquet的答案,并期望其他主持人回答他。

我的开发机器(1.1.1.4)是否可以模拟以下虚拟主机:1.1.1.5,1.1.1.6等?

我在Mac OS 10.9上使用Qt 5.2.1中的QUdpSocket,但我对任何其他可以帮助我做这个技巧的技术开放。

2 个答案:

答案 0 :(得分:3)

这取决于你的操作系统。

在Linux上,您可以创建多个虚拟网络设备,并将每个设备绑定到不同的网络地址。虚拟网络设备的名称为具有:xxx数字后缀的实际设备。例如,如果主网络设备为eth0,则可以运行命令

ifconfig eth0:1 1.1.1.5

创建虚拟设备eth0:1并将其绑定到地址1.1.1.5。这只是暂时的(重启时会消失);如果你想在重启时回来,你可以编辑`/ etc / network / interfaces文件,如下所示:

auto eth0
iface eth0 inet static
    address 1.1.1.4
    netmask 255.255.255.0
    gateway 1.1.1.1

auto eth0:1
    address 1.1.1.5
    netmask 255.255.255.0

gateway部分缺少eth0:1意味着它不会使用此接口进行路由,因此它只是用于接收数据包和显式绑定到IP地址。

答案 1 :(得分:1)

安装VirtualBox(here)并为一个小型Linux发行版制作一个足够大的小磁盘映像。运行多个副本,每个副本位于不同的IP地址,并在每个副本中运行一个小netcat脚本,用于侦听和发送回复。

#!/bin/bash
while :
do
   command=$(nc -ul 1234)
   process $command and reply
done

或者,阅读this并继续使用克里斯的想法,这对资源的重视程度更轻!