首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實現修改 IP 位址功能 — WMI Win32_NetworkAdapterConfiguration

     編輯:關於C語言

核心程式碼片段


// 啟用靜態 IP
mo.InvokeMethod("EnableStatic", iObj, null);

// 設定閘道
iObj = mo.GetMethodParameters("SetGateways");
iObj["DefaultIPGateway"] = gateways;          // string[] 閘道陣列
iObj["GatewayCostMetric"] = gatewayCostMetric; // int[] 對應度量
oObj = mo.InvokeMethod("SetGateways", iObj, null);

// 設定 DNS
iObj = mo.GetMethodParameters("SetDNSServerSearchOrder");
iObj["DNSServerSearchOrder"] = dnsServers;    // string[] DNS 陣列
oObj = mo.InvokeMethod("SetDNSServerSearchOrder", iObj, null);

啟用 DHCP


public void EnableDHCP()
{
    foreach (ManagementObject mo in moc)
    {
        if (!(bool)mo["IPEnabled"]) continue;
        if (!(bool)mo["DHCPEnabled"])
        {
            iObj = mo.GetMethodParameters("EnableDHCP");
            oObj = mo.InvokeMethod("EnableDHCP", iObj, null);
        }
    }
}

完整流程說明

  1. 查詢 Win32_NetworkAdapterConfiguration 且 IPEnabled=true 的網卡。
  2. 呼叫 EnableStatic 設定 IP/子網路遮罩 (需構造 iObj["IPAddress"]、iObj["SubnetMask"] 陣列)。
  3. 呼叫 SetGateways 設定預設閘道與度量。
  4. 呼叫 SetDNSServerSearchOrder 設定 DNS 伺服器清單。
  5. 或呼叫 EnableDHCP 切回自動取得 IP。

注意事項

  • 需參考 System.Management.dll 並以管理員權限執行。
  • IP/閘道/DNS 皆為字串陣列,支援多值 (如多 DNS)。
  • 變更後網路可能短暫中斷,建議提供使用者確認提示。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved