如何抓取網路介面卡和位置資訊 (HTML)

[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]

這個主題示範如何抓取網路上與介面卡關聯的 LanIdentifier 物件,並使用 Windows.Networking.Connectivity 命名空間中的類別存取可用以判斷網路基礎結構相對位置的資訊。

LanIdentifier 物件會定義應用程式用來抓取基礎結構/連接埠識別碼以判斷位置的方法,並且會定義與網路介面卡關聯的識別碼值。這個識別碼的表示方法為 ConnectionProfile 屬性,以顯示其與網路連線的關聯性。

您必須知道的事

技術

先決條件

下列範例使用 JavaScript,並且使用網路資訊範例做為依據。 如需使用 JavaScript 建立 Windows 執行階段應用程式的一般協助,請參閱使用 JavaScript 建立您的第一個 Windows 執行階段應用程式

抓取所有 LanIdentifier 物件

我們的第一個範例函式會呼叫 NetworkInformation.getLanIdentifiers 方法來抓取 LanIdentifier 物件的陣列。

var networkInfo = Windows.Networking.Connectivity.NetworkInformation;

function DisplayLanIdentifiers() {
     var lanIdentifier = "";
     try {
         var lanIdentifiers = networkInfo.getLanIdentifiers();
         if (lanIdentifiers.length !== 0) {
             lanIdentifier += "Number of LAN Identifiers retrieved: " + lanIdentifiers.length + "\n\r";
             lanIdentifier += "=============================================\n\r";
             for (var i = 0; i < lanIdentifiers.length; i++) {
                 //Display Lan Identifier data for each identifier
                 lanIdentifier += getLanIdentifierData(lanIdentifiers[i]);
                 lanIdentifier += "----------------------------------------------------------------\n\r";
             }
             mySample.displayStatus(lanIdentifier);
         }
         else {
             mySample.displayStatus("No LAN identifier data found");
         }
     }

     catch (e) {
         mySample.displayError("Exception Caught: " + e + "\n\r");
     }
 }

顯示 LanIdentifier 物件的屬性

然後我們會將上一個步驟傳回的 LanIdentifier 物件傳遞給下列範例函式,以顯示特定的基礎結構識別碼、連接埠識別碼以及網路介面卡識別碼值。

var networkInfo = Windows.Networking.Connectivity.NetworkInformation;
  
function getLanIdentifierData(lanIdentifier) {
    var lanIdentifierData = "";
    var i = 0;
    try {
        if (lanIdentifier === null) {
            return "";
        }
        if (lanIdentifier.infrastructureId !== null) {
            lanIdentifierData += "Infrastructure Type: " + lanIdentifier.infrastructureId.type + "\n\r";
            lanIdentifierData += "Infrastructure Value: [";
            for (i = 0; i < lanIdentifier.infrastructureId.value.length; i++) {
                //Display the Infrastructure value array
                lanIdentifierData += lanIdentifier.infrastructureId.value[i].toString(16) + " ";
            }
            lanIdentifierData += "]\n\r";
        }
        if (lanIdentifier.portId !== null) {
            lanIdentifierData += "Port Type : " + lanIdentifier.portId.type + "\n\r";
            lanIdentifierData += "Port Value: [";
            for (i = 0; i < lanIdentifier.portId.value.length; i++) {
                //Display the PortId value array
                lanIdentifierData += lanIdentifier.portId.value[i].toString(16) + " ";
            }
            lanIdentifierData += "]\n\r";
        }
        if (lanIdentifier.networkAdapterId !== null) {
            lanIdentifierData += "Network Adapter Id : " + lanIdentifier.networkAdapterId + "\n\r";
        }
    }
    catch (e) {
        mySample.displayError("Exception Caught: " + e + "\n\r");
    }
    return lanIdentifierData;
}

相關主題

其他

使用 JavaScript 建立您的第一個 Windows 執行階段應用程式

如何處理網路應用程式中的例外狀況

如何管理計量付費網路費用限制

如何管理網路連線事件與可用性變更

如何抓取網路連線資訊

如何抓取網路連線使用狀況資料

參考

LanIdentifier

LanIdentifierData

NetworkAdapter

NetworkInformation

NetworkInformation.getLanIdentifiers

範例

網路資訊範例

網路狀態背景範例