2017-05-07 104 views
0

我用下面的代碼創建了一個虛擬的WiFi熱點的IP,我現在需要得到它的IP地址,但我居然不知道它的網絡接口的名稱(如沒有固定的名字, '本地連接* 16'也許)。如何獲得/設置託管網絡

的目標是要知道這麼設置託管網絡的IP應是解決方案之一其IP地址...但最好是沒有手動的作品都有涉及。

這個問題難住了我......請幫助;(

private void Hotspot(string ssid, string key,bool status) 
{ 
    ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe"); 
    processStartInfo.RedirectStandardInput = true; 
    processStartInfo.RedirectStandardOutput = true; 
    processStartInfo.CreateNoWindow = true; 
    processStartInfo.UseShellExecute = false; 
    Process process = Process.Start(processStartInfo); 

    if (process != null) 
    { 
     if (status) 
     { 
      process.StandardInput.WriteLine (""); 
      process.StandardInput.WriteLine("netsh wlan set hostednetwork mode=allow ssid=" + ssid + " key=" + key); 
      print ("cmd: "+"netsh wlan set hostednetwork mode=allow ssid=" + ssid + " key=" + key); 
      process.StandardInput.WriteLine("netsh wlan start hostednetwork"); 
      print ("cmd: " + "netsh wlan start hostednetwork"); 
      process.StandardInput.Close(); 
     } 
     else 
     { 
      process.StandardInput.WriteLine (""); 
      process.StandardInput.WriteLine("netsh wlan stop hostednetwork"); 
      print ("cmd: " + "netsh wlan stop hostednetwork"); 
      process.StandardInput.Close(); 
     } 
    } 
} 
+0

我發現兩件事情可能會有所幫助: 1)託管地址值看起來像「器regedit.exe」上鉤,在HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \「將localAddress」的服務\ WLANSVC \參數\ EapolKeyIpAddress值,但似乎不容易恢復。 .. 2)使用Netsh,微軟動力工具,網絡連接的描述應該是相同的(**沒有證明**)寫爲「微軟託管的網絡虛擬適配器」 請諮詢這些可能是一個解決辦法? –

回答

0

該解決方案包括一個假設:使用命令netsh wlan將引用註冊表中SYSTEM\CurrentControlSet\Services\WlanSvc\Parameters\EapolKeyIpAddress關鍵LocalAddress虛擬熱點地址

然而,我不會把它標記爲一個答案,因爲它具有不確定性。討論或意見都歡迎。

private string GetVirtualHotspotIPAddress() { 
    using (RegistryKey wlanKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\WlanSvc\\Parameters\\EapolKeyIpAddress")) { 
     if (wlanKey != null) { 
      object keyValue = wlanKey.GetValue ("LocalAddress"); 
      if (keyValue != null) { 
       return keyValue.ToString(); 
      } else { 
       UnityEngine.Debug.LogError ("KEY 'LocalAddress' NOT FOUND"); 
       return null; 
      } 
     } else { 
      UnityEngine.Debug.LogError ("No WLANSVC KEY FOUND"); 
      return null; 
     } 
    } 
}