From 85d97f05f6f8e4c1d73cd2bb096806839d16f3b0 Mon Sep 17 00:00:00 2001
From: gcontini <1121667+gcontini@users.noreply.github.com>
Date: 周六, 31 10月 2020 10:27:16 +0800
Subject: [PATCH] Pc identifier Mac address issues #108 & #107

---
 src/inspector/inspector.cpp |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/src/inspector/inspector.cpp b/src/inspector/inspector.cpp
index 40cd281..eb23c0e 100644
--- a/src/inspector/inspector.cpp
+++ b/src/inspector/inspector.cpp
@@ -5,20 +5,19 @@
 #include <licensecc/licensecc.h>
 #include <fstream>
 #include <string.h>
+#include <iomanip>
 #include "../library/base/string_utils.h"
 #include "../library/ini/SimpleIni.h"
 #include "../library/os/dmi_info.hpp"
 #include "../library/os/cpu_info.hpp"
 #include "../library/os/dmi_info.hpp"
+#include "../library/os/network.hpp"
 
 using namespace std;
 using namespace license::os;
 
-const map<int, string> stringByStrategyId = {{STRATEGY_DEFAULT, "DEFAULT"},
-											 {STRATEGY_ETHERNET, "MAC"},
-											 {STRATEGY_IP_ADDRESS, "IP"},
-											 {STRATEGY_DISK_NUM, "Disk1"},
-											 {STRATEGY_DISK_LABEL, "Disk2"}};
+const map<int, string> stringByStrategyId = {
+	{STRATEGY_DEFAULT, "DEFAULT"}, {STRATEGY_ETHERNET, "MAC"}, {STRATEGY_IP_ADDRESS, "IP"}, {STRATEGY_DISK, "Disk"}};
 
 const unordered_map<int, string> descByVirtDetail = {{BARE_TO_METAL, "No virtualization"},
 													 {VMWARE, "Vmware"},
@@ -98,6 +97,28 @@
 	cout << "Virtualiz. detail:" << descByVirtDetail.find(exec_env_info.virtualization_detail)->second << endl;
 	cout << "Cloud provider   :" << descByCloudProvider.find(exec_env_info.cloud_provider)->second << endl;
 
+	std::vector<license::os::OsAdapterInfo> adapterInfos;
+	FUNCTION_RETURN ret = license::os::getAdapterInfos(adapterInfos);
+	if (ret == FUNCTION_RETURN::FUNC_RET_OK) {
+		for (auto osAdapter : adapterInfos) {
+			cout << "Network adapter [" << osAdapter.id << "]: " << osAdapter.description << endl;
+			cout << "   ip address [" << static_cast<unsigned int>(osAdapter.ipv4_address[3]) << "-"
+				 << static_cast<unsigned int>(osAdapter.ipv4_address[2]) << "-"
+				 << static_cast<unsigned int>(osAdapter.ipv4_address[1]) << "-"
+				 << static_cast<unsigned int>(osAdapter.ipv4_address[0]) << "]" << endl;
+			cout << "   mac address [" << std::hex;
+			for (int i = 0; i < 8; i++) {
+				if (i != 0) {
+					cout << ":";
+				}
+				cout << static_cast<unsigned int>(osAdapter.mac_address[i]);
+			}
+			cout << "]" << std::dec << endl;
+		}
+	} else {
+		cout << "problem in getting adapter informations:" << ret << endl;
+	}
+
 	license::os::CpuInfo cpu;
 	cout << "Cpu Vendor       :" << cpu.vendor() << endl;
 	cout << "Cpu Brand        :" << cpu.brand() << endl;

--
Gitblit v1.9.1