Beispiel #1
0
        private Task RunGetDhcpInfoAsync(HostInfo hostInfo)
        {
            var task = Task <DhcpInfo> .Factory.StartNew(() =>
            {
                var dhcpInfoService = ServiceProvider.GetService <IDhcpInfoService>();
                var result          = dhcpInfoService.GetDhcpInfo(hostInfo.NetworkAdapterId);
                if (result == null)
                {
                    throw new Exception("GetDhcpInfo failed");
                }

                return(result);
            });

            DhcpInfoTaskStatus = TaskStatus.Running;
            var completedTask = WrapTask(
                task,
                TaskScheduler.FromCurrentSynchronizationContext(),
                Strings.Status_GetDhcpInfoFailed,
                t =>
            {
#if SCREENSHOT
                DhcpInfo = new DhcpInfo(t.Result.GatewayAddress, t.Result.DnsServerAddress, "my-domain-name");
#else
                DhcpInfo = t.Result;
#endif
                DhcpInfoTaskStatus = TaskStatus.RanToCompletion;
            },
                t => { DhcpInfoTaskStatus = TaskStatus.Faulted; });

            return(completedTask);
        }
Beispiel #2
0
        public MockServiceProvider(MockServiceProviderOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException("options");
            }

            m_settingsPropertyStore = options.SettingsPropertyStore;
            m_hostInfo        = options.HostInfo;
            m_connectionInfo  = options.ConnectionInfo;
            m_dhcpInfo        = options.DhcpInfo;
            m_externalAddress = options.ExternalAddress;
        }
Beispiel #3
0
        public void DHCPInfo()
        {
            WifiManager wifiManager = (WifiManager)(Application.Context.GetSystemService(Context.WifiService));
            DhcpInfo    dhcpinfo    = wifiManager.DhcpInfo;

            ip2           = Android.Text.Format.Formatter.FormatIpAddress(dhcpinfo.IpAddress);
            mask          = Android.Text.Format.Formatter.FormatIpAddress(dhcpinfo.Netmask);
            gateway       = Android.Text.Format.Formatter.FormatIpAddress(dhcpinfo.Gateway);
            dns1          = Android.Text.Format.Formatter.FormatIpAddress(dhcpinfo.Dns1);
            dns2          = Android.Text.Format.Formatter.FormatIpAddress(dhcpinfo.Dns2);
            dhcp          = Android.Text.Format.Formatter.FormatIpAddress(dhcpinfo.ServerAddress);
            leaseduration = dhcpinfo.LeaseDuration;
        }
Beispiel #4
0
        public string GetBroadcastAddress()
        {
            Log.Debug("UDP", "Getting broadcast adress");
            WifiManager wifi = (WifiManager)Android.App.Application.Context.GetSystemService(Context.WifiService);
            DhcpInfo    dhcp = wifi.DhcpInfo;
            // handle null somehow

            int broadcast = (dhcp.IpAddress & dhcp.Netmask) | ~dhcp.Netmask;

            byte[] quads = new byte[4];
            for (int k = 0; k < 4; k++)
            {
                quads[k] = (byte)((broadcast >> k * 8) & 0xFF);
            }
            Log.Debug("UDP", "Adrress is: " + InetAddress.GetByAddress(quads));
            return(InetAddress.GetByAddress(quads).ToString());
        }
Beispiel #5
0
        //ブロードキャストアドレスの取得
        InetAddress getBroadcastAddress()
        {
            DhcpInfo dhcpInfo  = wifi.DhcpInfo;
            int      broadcast = (dhcpInfo.IpAddress & dhcpInfo.Netmask) | ~dhcpInfo.Netmask;

            byte[] quads = new byte[4];
            for (int i = 0; i < 4; i++)
            {
                quads[i] = (byte)((broadcast >> i * 8) & 0xFF);
            }
            try
            {
                return(InetAddress.GetByAddress(quads));
            }
            catch (IOException e)
            {
                e.PrintStackTrace();
                return(null);
            }
        }
Beispiel #6
0
        public DhcpInfo GetDhcpInfo(Guid networkAdapterId)
        {
            var result = DhcpInfo.GetDhcpInfo(networkAdapterId);

            return(result);
        }
 protected override void BecauseOf()
 {
     m_result = new DhcpInfo(GatewayAddress, DnsServerAddress, DomainName);
 }
Beispiel #8
0
        WifiConnectionInfo TryConnectViaMethod(WifiNetworkDto dto)
        {
            string             bssid             = dto.BssID;
            string             ssid              = dto.Name;
            string             password          = dto.Password;
            var                formattedSsid     = $"\"{ssid}\"";
            var                formattedPassword = $"\"{password}\"";
            WifiConnectionInfo info2             = null;


            var wifiConfig = new WifiConfiguration
            {
                Bssid    = bssid,
                Ssid     = formattedSsid,
                Priority = Constants.WIFI_CONFIG_PRIORITY
            };

            if (dto.NetworkType.Contains("[WEP]"))
            {
                // for WEP
                wifiConfig.WepKeys[0] = formattedPassword;

                wifiConfig.WepTxKeyIndex = 0;
                wifiConfig.AllowedKeyManagement.Set((int)KeyManagementType.None);

                wifiConfig.AllowedProtocols.Set((int)Android.Net.Wifi.ProtocolType.Rsn);
                wifiConfig.AllowedGroupCiphers.Set((int)Android.Net.Wifi.GroupCipherType.Wep40);
                wifiConfig.AllowedProtocols.Set((int)Android.Net.Wifi.ProtocolType.Wpa);

                wifiConfig.AllowedGroupCiphers.Set((int)Android.Net.Wifi.GroupCipherType.Wep104);
            }
            else
            if (dto.NetworkType.Contains("[WPA"))
            {
                //wifiConfig.AllowKeyManagement.Set((int)KeyManagementType.WpaPsk);
                wifiConfig.PreSharedKey = formattedPassword;
            }
            else
            {
                // open networks
                wifiConfig.AllowedProtocols.Set((int)Android.Net.Wifi.ProtocolType.Rsn);
                wifiConfig.AllowedKeyManagement.Set((int)KeyManagementType.None);
            }


            var wifiManager = (WifiManager)Android.App.Application.Context.GetSystemService(Android.Content.Context.WifiService);
            var connManager = (ConnectivityManager)Android.App.Application.Context.GetSystemService(Android.Content.Context.ConnectivityService);
            var ni1         = connManager.ActiveNetworkInfo;

            if (ni1 != null && ni1.IsConnected && ni1.Type == ConnectivityType.Wifi)
            {
                //WifiConnectionInfo info = new WifiConnectionInfo
                //{
                //    FirstConnectMac = wifiManager.ConnectionInfo.MacAddress,

                //};
                return(null);
            }
            else
            {
                wifiManager.SetWifiEnabled(true);
                var addNetworkIdx = wifiManager.AddNetwork(wifiConfig);
                var bd            = wifiManager.Disconnect();
                var enableNetwork = wifiManager.EnableNetwork(addNetworkIdx, true);
                var brc           = wifiManager.Reconnect();

                DhcpInfo dhcpInfo = wifiManager.DhcpInfo;
                //byte[] ipAddress = BitConverter.GetBytes(dhcpInfo.Gateway);
                int gwip = wifiManager.DhcpInfo.Gateway;
                Task.Delay(500);
                gwip = wifiManager.DhcpInfo.Gateway;

                var gwAddr = (gwip & 0xFF) + "." +
                             ((gwip >> 8) & 0xFF) + "." +
                             ((gwip >> 16) & 0xFF) + "." +
                             ((gwip >> 24) & 0xFF);
                info2 = new WifiConnectionInfo
                {
                    FirstConnectMac = wifiManager.ConnectionInfo.MacAddress,
                    // https://theconfuzedsourcecode.wordpress.com/2015/05/16/how-to-easily-get-device-ip-address-in-xamarin-forms-using-dependencyservice/
                    RouterWebUIIP = gwAddr //DependencyService.Get<IIPAddressManager>().GetIPAddress(),
                };
            }

            var isConnectedToAP = wifiManager.ConnectionInfo.BSSID != "00:00:00:00:00:00" &&
                                  info2.RouterWebUIIP != "127.0.0.1" &&
                                  info2.RouterWebUIIP != "0.0.0.0";

            return(isConnectedToAP ? info2 : null);
        }
Beispiel #9
0
 protected override void BecauseOf()
 {
     m_result = new DhcpInfo(GatewayAddress, DnsServerAddress, DomainName);
 }