我正在开发一个Java程序(仅适用于Windows),它创建了PPPoE连接(它不是那么重要)。重要的是,我需要 SOMEHOW 在局域网选项卡中禁用IPv4。
problem http://img228.imageshack.us/img228/3253/4dcb10eb731a403e9fc785e.png
(捷克语)
我需要以某种方式“取消选中”ceratin网络适配器中的IPv4协议。我能够通过CMD和 netsh 工具设置一些东西,但我无法设法为单个适配器禁用IPv4协议。我知道如何为整个计算机禁用IPv4,但这对我不起作用(因为我需要IPv4通信,只需通过不同的通道)。
我知道如何通过Windows注册表“取消选中”IPv6(我在互联网上找到它),但同样适用于IPv4。
非常感谢任何帮助。
我需要实现的结果(以编程方式)
result http://img35.imageshack.us/img35/8459/bfebacf3b9bb428c84dee44.png
PS:请不要问为什么我用Java制作仅限Windows的应用程序......
答案 0 :(得分:3)
请参阅Microsoft示例代码here。
您需要将ms_tcpip6的引用替换为ms_tcpip,您可能需要进行一些实验来确定如何识别正确的适配器。这个额外的代码片段可能会有所帮助,它属于内部循环:
[...]
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);
[...]
希望路径令牌或路径所有者能够为您提供识别正确适配器所需的信息。
答案 1 :(得分: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 /?”