2017-05-07 78 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; 
     } 
    } 
}