1

我通过以下代码创建了一个虚拟 WiFi 热点,我现在需要获取它的 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();
        }
    }
}
4

1 回答 1

2

该解决方案涉及一个假设:使用命令的虚拟热点地址将netsh wlan引用LocalAddress.SYSTEM\CurrentControlSet\Services\WlanSvc\Parameters\EapolKeyIpAddress

但是我不会将其标记为答案,因为它具有不确定性。欢迎讨论或评论。

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;
        }
    }
}
于 2017-05-12T19:29:10.293 回答