2012-07-11 118 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測試結果,它可以查詢您計算機上的網絡接口。

祝你好運。

相關問題