Ejemplo n.º 1
0
 public void when_ip_is_valid()
 {
     Assert.Equal("0.0.0.12", IPConverter.ToIPv4("12").ToString());
     Assert.Equal("1.0.0.2", IPConverter.ToIPv4("1.2").ToString());
     Assert.Equal("1.2.3.4", IPConverter.ToIPv4("1.2.3.4").ToString());
     Assert.Null(IPConverter.ToIPv4("ABCD:EF01:2345:6789:ABCD:EF01:2345:6789"));
 }
Ejemplo n.º 2
0
 public void when_ip_is_valid()
 {
     Assert.Equal("0.0.0.12", IPConverter.ToIPAddress("12").ToString());
     Assert.Equal("1.0.0.2", IPConverter.ToIPAddress("1.2").ToString());
     Assert.Equal("1.2.3.4", IPConverter.ToIPAddress("1.2.3.4").ToString());
     Assert.Equal("abcd:ef01:2345:6789:abcd:ef01:2345:6789", IPConverter.ToIPAddress("ABCD:EF01:2345:6789:ABCD:EF01:2345:6789").ToString());
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Проверка IP-адресов проекта.
        /// </summary>
        /// <returns>Ошибки</returns>
        private string CheckProjectIPAddresses()
        {
            string errors = "";
            string startIPstr, endIPstr;
            string startIpProperty = "EPLAN.Project.UserSupplementaryField1";
            string endIpProperty   = "EPLAN.Project.UserSupplementaryField2";

            try
            {
                startIPstr = ApiHelper.GetProjectProperty(startIpProperty);
                endIPstr   = ApiHelper.GetProjectProperty(endIpProperty);

                startIPstr = Regex
                             .Match(startIPstr, CommonConst.IPAddressPattern).Value;
                endIPstr = Regex
                           .Match(endIPstr, CommonConst.IPAddressPattern).Value;
                if (startIPstr == "" || endIPstr == "")
                {
                    string errMsg = $"Некорректно задан диапазон " +
                                    $"IP-адресов проекта.\n";
                    throw new Exception(errMsg);
                }
            }
            catch (Exception e)
            {
                ProjectConfiguration.GetInstance().ResetIPAddressesInterval();
                if (e.Message.Contains(startIpProperty) ||
                    e.Message.Contains(endIpProperty))
                {
                    errors += "Не задан диапазон IP-адресов проекта.\n";
                }
                else
                {
                    errors += e.Message;
                }
                return(errors);
            }

            long startIP = IPConverter.ConvertIPStrToLong(startIPstr);
            long endIP   = IPConverter.ConvertIPStrToLong(endIPstr);

            if (endIP - startIP <= 0)
            {
                ProjectConfiguration.GetInstance().ResetIPAddressesInterval();
                errors += "Некорректно задан диапазон IP-адресов проекта.\n";
                return(errors);
            }

            ProjectConfiguration.GetInstance().StartingIPInterval = startIP;
            ProjectConfiguration.GetInstance().EndingIPInterval   = endIP;
            return(errors);
        }
Ejemplo n.º 4
0
        public void when_ip_is_valid()
        {
            var ipLocator = IPLocator.Default;

            var ipv4 = IPConverter.ToIPv4("113.208.112.114").Value;

            var location = ipLocator.Find(ipv4);

            Assert.Equal("中国", location.Country);
            Assert.Equal("北京", location.State);
            Assert.Equal("北京", location.City);
            Assert.Equal("113.208.112.114", location.IP.ToString());
        }
Ejemplo n.º 5
0
        ///  <summary>
        ///  获取当前请求的IP
        ///  </summary>
        public IPAddress GetClientIP(HttpRequestBase httpRequest)
        {
            if (httpRequest == null)
            {
                return(null);
            }

            var ip = GetIpFromServerVariables(httpRequest.ServerVariables);

            if (string.IsNullOrWhiteSpace(ip))
            {
                ip = httpRequest.UserHostAddress;
            }
            return(IPConverter.ToIPAddress(ip));
        }
Ejemplo n.º 6
0
 public void when_ip_is_invalid_should_return_null(string ip)
 {
     Assert.Null(IPConverter.ToIPAddress(ip));
 }
Ejemplo n.º 7
0
 public static void ExportToIP(string path, TeacherVM teacher)
 {
     IPConverter.Convert(Context.EntitiesVmRegistry, path, teacher);
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Returns true when succesful, false otherwise
        /// </summary>
        /// <param name="gametime"></param>
        /// <returns></returns>
        private async Task <LoginResult> Login(IGameTimeService gametime, int maxNumTries = 5)
        {
            int numTries = 0;

            _loggingIn = true;
#if DEVELOPMENT
            if (Debugging.Autologin)
            {
                await Task.Delay(8000);

                Username     = Debugging.AutoLoginName;
                Password     = Debugging.AutoLoginPassword;
                ReadyToLogin = true;
                Console.WriteLine("Autologin attempt as " + Debugging.AutoLoginName);
            }
            else
            {
                Console.Write("ENTER USERNAME: "******"ENTER PASSWORD: "******"Logging in...";


                string response = await _clientManager.ConnectToURI(_buildLoginRequest(_loginConfig.LoginIP, _loginConfig.LoginPort, Username, Password));

                if (response == null)
                {
                    //Something went wrong...figure out how to deal with this later, if necessary
                    LoginDisplayMessage = "Something went wrong...";
                    _isLoggedIn         = false;
                    _loggingIn          = false;
                    return(LoginResult.UnknownFailure);
                }
                else if (response == "timeout")
                {
                    //Response timed out, try again
                    numTries++;
                }
                else
                {
                    LoginResponse lr = JsonConvert.DeserializeObject <LoginResponse>(response);
                    EncryptionKey = lr.Key;
                    EncryptionIV  = lr.IV;
                    Console.WriteLine("Login Response, " + lr.Result);

                    if (lr.Result == LoginResult.Success)
                    {
                        string IPAddress = IPConverter.Convert(lr.ServerIP);
                        bool   connected = false;


                        await Task.Run(() =>
                        {
                            //_clientManager.ConnectToMasterServer(_loginConfig.MasterServerIP, _loginConfig.MasterServerPort);
                            connected = _clientManager.ConnectToSlaveServer(IPAddress, lr.ServerPort, lr.HailMessage, Username, Password, 2000);
                        });

                        if (!connected)
                        {
                            _loggingIn          = false;
                            ReadyToLogin        = false;
                            LoginDisplayMessage = "Could not connect to server.";
                            Console.WriteLine("Could not connect to slave. Connection refused? Ensure that networking is being updated.");
                        }

                        _loggingIn   = false;
                        _isLoggedIn  = true;
                        ReadyToLogin = false;
                        return(LoginResult.Success);
                    }
                    else
                    {
                        if (lr.Result == LoginResult.InvalidUsernameOrPassword)
                        {
                            LoginDisplayMessage = "Invalid username or password.";
                        }
                        else if (lr.Result == LoginResult.AlreadyLoggedOn)
                        {
                            LoginDisplayMessage = "User is already logged on!";
                        }
                        else if (lr.Result == LoginResult.AlreadyPending)
                        {
                            //Ideally the user won't ever see this case...
                            LoginDisplayMessage = "User is already attempting to log on!";
                        }

                        _loggingIn   = false;
                        ReadyToLogin = false;
                        return(lr.Result);
                    }
                }
            }


            //All requests timed out, reset state
            _loggingIn          = false;
            ReadyToLogin        = false;
            LoginDisplayMessage = "Request timeout. Check your internet connection.";
            return(LoginResult.MaxTimeoutsExceeded);
        }