2

我正在开发一个 Java 程序(仅适用于 Windows),它创建 PPPoE 连接(它并不那么重要)。重要的是,我需要在局域网选项卡中以某种方式禁用 IPv4

问题 http://img228.imageshack.us/img228/3253/4dcb10eb731a403e9fc785e.png

(捷克语)


我需要以某种方式“取消选中”某个网络适配器中的 IPv4 协议。我能够通过 CMD 和netsh工具设置一些东西,但我无法设法为单个适配器禁用 IPv4 协议。我知道如何为整个计算机禁用 IPv4,但这对我不起作用(因为我需要 IPv4 通信,只是通过不同的通道)。我知道如何通过 Windows 注册表“取消选中”IPv6(我在互联网上找到了它),但同样不适用于 IPv4。

任何帮助将不胜感激。

我需要达到的结果(以编程方式)

结果 http://img35.imageshack.us/img35/8459/bfebacf3b9bb428c84dee44.png

PS:请不要问我为什么用Java制作仅限Windows的应用程序......

4

2 回答 2

3

请参阅此处的Microsoft 示例代码。

您需要用 ms_tcpip 替换对 ms_tcpip6 的引用,并且您可能需要进行一些试验来确定如何识别正确的适配器。这个额外的代码片段可能会有所帮助,它属于内部循环:

        [...]
        while (hr == S_OK) 
        {
            LPWSTR lpszPathToken;
            hr = pncbp->GetPathToken(&lpszPathToken);
            if (hr != S_OK) fail(hr);
            wprintf(L"Path token: %s\n", lpszPathToken);

            // Get owner

            INetCfgComponent *owner;
            LPWSTR lpszOwner;

            hr = pncbp->GetOwner(&owner);
            if (hr != S_OK) fail(hr);

            hr = owner->GetId(&lpszOwner);
            if (hr != S_OK) fail(hr);

            wprintf(L"Path owner: %s\n", lpszOwner);
            // Disable this binding.

            hr = pncbp->Enable(ENABLE);
            [...]

希望路径令牌或路径所有者将为您提供识别正确适配器所需的信息。

于 2012-08-06T20:59:12.063 回答
0

检查此工具:https ://gallery.technet.microsoft.com/Hyper-V-Network-VSP-Bind-cf937850

nvspbind is a tool for modifying network bindings from the command line. It is especially useful in Server Core environments with the Hyper-V role enabled.

It can be used to set the correct bindings for NICs used in Virtual Networks.

It can also be used to enable or disable specific bindings on any NIC and to query and change the NIC connection order.

It utilizes the INetCfg APIs documented on MSDN (http://msdn.microsoft.com/en-us/library/ms805265.aspx).

Most options are documented in the readme and nvpsbind.txt which download with the install.

To get help run “nvspbind.exe /?”
于 2013-05-09T23:27:42.273 回答