2012-07-11 64 views
0

是否可以使用Java或C#添加虚拟网络接口。我需要为我的计算机设置一堆IP以用于数据挖掘应用程序,并且我没有足够的网卡(我不想再购买更多)。以编程方式创建虚拟网络接口

我需要从应用程序完全控制虚拟卡(创建,删除,设置IP,可能重定向流量)。

+0

哪个操作系统?这是一个非常依赖操作系统的问题。 – 2012-07-11 12:40:55

+0

我改变操作系统没有问题。我可以使用Windows与C#或Java,但也可以使用GNU/Linux发行版与Java ...甚至Python。我需要的是一个稳定的系统。 – 2012-07-11 12:45:18

+0

IP和NIC不在1-1映射中。您可以在一张卡上拥有多个IP地址。 – 2012-07-11 12:57:37

回答

1

我不知道你有一个纯粹的Java解决方案。

你有几种选择。
1.使用一个能为你做的脚本,在perl \ shell中写这个解决方案将是4-5行。
2.您可以打开一个ssh连接到您的机器并运行来自Java的命令。 我有这样的实用程序,使用trilead-ssh2。

若要使用maven,你可以使用:

<dependency> 
     <groupId>com.trilead</groupId> 
     <artifactId>trilead-ssh2</artifactId> 
     <version>build213-svnkit-1.3-patch</version> 
    </dependency> 

例如,这样你应该打开一个连接:

public static Connection newConnectionWithPassword(String host, String username, String passwd) { 
    Connection newConn = new Connection(host); 
    try { 
     newConn.connect(); // Ignoring ConnectionInfo returned value. 
     newConn.authenticateWithPassword(username, passwd); 
     return newConn; 
    } catch (IOException ioe) { 
     newConn.close(); 
     ioe.printStackTrace(); 
     return null; 
    } 
} 

然后运行命令,您可以:

this.session = conn.openSession(); 
this.session.execCommand(this.cmd); 

您现在可以使用OS命令从java创建虚拟接口。 顺便说一句, 您可以使用NetworkInterface.class测试结果,它可以查询您计算机上的网络接口。

祝你好运。

相关问题