title: Mac or Motherboard as a unique identifier for licensing purpose?
body: <p>OK so i was using MAC address as a unique identifier , all went good until i activated a VPN and the mac address changed.....</p>
  
  <p>So, i have 2 options:</p>
  
  <p>1) Get the MAC Address of the actual physical network card</p>
  
  <p>For mac address i found several tips on how to achieve this:</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/1567377/how-to-determine-mac-address-of-the-actual-physical-network-card-not-virtual">Link1</a></li>
  <li><a href="https://stackoverflow.com/questions/9482253/is-there-really-any-way-to-uniquely-identify-any-computer-at-all">Link2</a></li>
  </ul>
  
  <p>2.) Get the motherboard ID and use that instead, and hope we dont get 2 computer with same id( is that possible? )</p>
  
  <pre><code>public String getMotherBoardID()
  {
      String serial = "";
      try
      {
          ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BaseBoard");
          ManagementObjectCollection moc = mos.Get();
  
          foreach (ManagementObject mo in moc)
          {
              serial = mo["SerialNumber"].ToString();
          }
          return serial;
      }
      catch (Exception)
      {
          return serial;
      }
  }
  </code></pre>
  
  <p>What do you say? Should i try to dig and find code that gets the mac address from the card and not the virtual ones, or should i just switch to motherboard? And i don't need to combine anything, i just need something that is not going to change so easily on the targeted computer.</p>