Esempio n. 1
0
        private void outputIPusers()
        {
            int count = 0;

            //Just output the ip users for a dedicated timeframe make a counter
            foreach (KeyValuePair <string, List <DateTime> > entry in zugriffeDict)
            {
                IpInfo info      = GetUserCountryByIp(entry.Key.ToString());
                string infoToAdd = "";
                if (info != null)
                {
                    infoToAdd += info.City + "/";
                    infoToAdd += info.Country + "/";
                    infoToAdd += info.Org + "/";
                    infoToAdd += info.Postal + "/";
                }
                string message = entry.Key.ToString() + " Seitenaufrufe: " + entry.Value.Count() + " Info: " + infoToAdd;
                logToOutput(message);
                logToOutputFile(message);
                count++;
            }

            if (count == 0)
            {
                string message = "Es gibt einfach keine Benutzer zu dieser Zeit";
                logToOutput(message);
                logToOutputFile(message);
            }

            if (outputFile_created)
            {
                string logoutput_created = "Der Output wurde auch in das File geschrieben " + filestreamToWrite.Name;;
                logToOutput(logoutput_created);
            }
        }
Esempio n. 2
0
        public void TrackUsers()
        {
            var    locationService = new GoogleLocationService();
            var    ip     = Request.ServerVariables["REMOTE_ADDR"];;
            IpInfo ipinfo = GetUserCountryByIp(ip);

            if (ipinfo.Loc != null)
            {
                string[] latlong = ipinfo.Loc.Split(',');
                ipinfo.Loc = clsobj.GetAddressFromLatLong(Convert.ToDouble(latlong[0]), Convert.ToDouble(latlong[1]));
            }

            SqlCommand cmd = new SqlCommand();

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "usp_InsertTrackRecord";
            cmd.Connection  = conn;
            cmd.Parameters.AddWithValue("@Ip", ipinfo.Ip == null ? "" : ipinfo.Ip);
            cmd.Parameters.AddWithValue("@Hostname", ipinfo.Hostname == null ? "" : ipinfo.Hostname);
            cmd.Parameters.AddWithValue("@City", ipinfo.City == null ? "" : ipinfo.City);
            cmd.Parameters.AddWithValue("@Region", ipinfo.Region == null ? "" : ipinfo.Region);
            cmd.Parameters.AddWithValue("@Country", ipinfo.Country == null ? "" : ipinfo.Country);
            cmd.Parameters.AddWithValue("@Loc", ipinfo.Loc == null ? "" : ipinfo.Loc);
            cmd.Parameters.AddWithValue("@Org", ipinfo.Org == null ? "" : ipinfo.Org);
            cmd.Parameters.AddWithValue("@Postal", ipinfo.Postal == null ? "" : ipinfo.Postal);

            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            cmd.ExecuteNonQuery();
        }
Esempio n. 3
0
        public static async Task <IpInfo> GetIpInfoAsync(string ip)
        {
            var key = Helper.GetEnvironmentVariable("ipstack_key");
            var url = $"http://api.ipstack.com/{ip}?access_key={key}";

            string ipInfoRaw;

            using (var client = new HttpClient())
            {
                ipInfoRaw = await client.GetStringAsync(url);
            }

            IpInfo ipInfo;

            try
            {
                ipInfo = JsonConvert.DeserializeObject <IpInfo>(ipInfoRaw);
            }
            catch
            {
                ipInfo = new IpInfo();
            }

            return(ipInfo);
        }
        public IpInfo SearchWithI18N(string ip, string langCode = "")
        {
            if (string.IsNullOrEmpty(ip))
            {
                throw new ArgumentException(nameof(ip));
            }

            if (string.IsNullOrEmpty(langCode))
            {
                langCode = IpToolSettings.DefaultLanguage;
            }

            if (_search.TryCity(ip, out var city))
            {
                var ipinfo = new IpInfo
                {
                    IpAddress      = ip,
                    CountryCode    = city.Country.IsoCode,
                    Country        = city.Country.Names.ContainsKey(langCode) ? city.Country.Names[langCode] : city.Country.Name,
                    Province       = city.MostSpecificSubdivision.Names.ContainsKey(langCode) ? city.MostSpecificSubdivision.Names[langCode] : city.MostSpecificSubdivision.Name,
                    ProvinceCode   = city.MostSpecificSubdivision.IsoCode,
                    City           = city.City.Names.ContainsKey(langCode) ? city.City.Names[langCode] : city.City.Name,
                    PostCode       = city.Postal.Code,
                    Latitude       = city.Location.Latitude,
                    Longitude      = city.Location.Longitude,
                    AccuracyRadius = city.Location.AccuracyRadius
                };
                return(ipinfo);
            }
            else
            {
                return(new IpInfo());
            }
        }
Esempio n. 5
0
        public LoginResult SignIn(string username, string password, string loginIp, Enumeration.LoginType loginType)
        {
            DateTime timeNow = DateTime.Now;

            IpInfo ipInfo = new IpInfo();
            SysUserLoginHistory loginHis = new SysUserLoginHistory();

            loginHis.LoginTime = timeNow;
            loginHis.Ip        = ipInfo.Ip;
            loginHis.Country   = ipInfo.Country;
            loginHis.Province  = ipInfo.Province;
            loginHis.City      = ipInfo.City;
            loginHis.LoginType = loginType;

            var result = _authorizeRelay.SignIn(username, password, timeNow, loginIp);

            switch (result.ResultTip)
            {
            case Enumeration.LoginResultTip.UserNotExist:
                loginHis.Description = "登录失败";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                break;

            case Enumeration.LoginResultTip.UserAccessFailedMaxCount:
                loginHis.Description = "登录失败,连续输入错误密码3次,锁定帐号30分钟";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                break;

            case Enumeration.LoginResultTip.UserPasswordIncorrect:
                loginHis.Description = "登录失败,密码错误";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                loginHis.UserId      = result.User.Id;
                break;

            case Enumeration.LoginResultTip.UserDisabled:
                loginHis.Description = "登录失败,帐号被禁用";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                loginHis.UserId      = result.User.Id;
                break;

            case Enumeration.LoginResultTip.UserDeleted:
                loginHis.Description = "登录失败,帐号已删除";
                loginHis.Result      = Enumeration.LoginResult.Failure;
                loginHis.UserId      = result.User.Id;
                break;

            case Enumeration.LoginResultTip.VerifyPass:
                loginHis.Description = "登录成功";
                loginHis.Result      = Enumeration.LoginResult.Success;
                loginHis.UserId      = result.User.Id;

                break;
            }

            CurrentDb.SysUserLoginHistory.Add(loginHis);
            CurrentDb.SaveChanges();


            return(result);
        }
Esempio n. 6
0
        private void NewLocation()
        {
            string ip     = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();
            IpInfo ipInfo = new IpInfo();

            try
            {
                string info = new WebClient().DownloadString("http://api.ipstack.com/" + ip + "?access_key=a02a2f0d948b727250a7980b6750931d");
                ipInfo = JsonConvert.DeserializeObject <IpInfo>(info);
            }
            catch (Exception)
            {
                ipInfo.Country = null;
            }

            if (ipInfo.Country != null)
            {
                Locations location = new Locations()
                {
                    country   = ipInfo.Country,
                    latitude  = ipInfo.Latitude,
                    longitude = ipInfo.Longitude
                };
                _context.Locations.Add(location);
                _context.SaveChanges();
            }
        }
Esempio n. 7
0
    public static IpInfo GetIpInfo()
    {
        IpInfo ipInfo = new IpInfo();

        try
        {
            // 5 secondes timeout
            string s = new MiniWebClient(5).DownloadString("http://ipinfo.io/json");
            ipInfo = JsonUtility.FromJson <IpInfo>(s);
            return(ipInfo);
        }
        catch (Exception ex)
        {
            Debug.LogWarning("MiniIpInfo::GetIpInfo: failed to get ip information from ipinfo.io: " + ex.ToString());
        }

        try
        {
            Debug.Log("MiniIpInfo::GetIpInfo: trying to get external ip address from icanhazip.com");
            // 5 secondes timeout
            string s = new MiniWebClient(5).DownloadString("http://icanhazip.com/");
            ipInfo.ip = s;
            return(ipInfo);
        }
        catch (Exception ex)
        {
            Debug.LogError("MiniIpInfo::GetIpInfo: failed to get ip information from icanhazip.com: " + ex.ToString());
        }

        return(ipInfo);
    }
Esempio n. 8
0
        private List <IpInfo> GetIps()
        {
            List <IpInfo> list = new List <IpInfo>();

            string url = "http://api.zdaye.com/?api=201710131331268754&pw=111111&gb=2&rtype=1";

            string html = DN.Framework.Utility.WebClientHelper.GetSend(url);

            var tlist = html.Split(System.Environment.NewLine.ToArray());

            foreach (var ips in tlist)
            {
                try
                {
                    if (!string.IsNullOrEmpty(ips))
                    {
                        IpInfo item = new IpInfo();

                        item.ip   = ips.Split(':')[0];
                        item.port = ips.Split(':')[1];
                        list.Add(item);
                    }
                }
                catch
                {
                }
            }

            return(list);
        }
Esempio n. 9
0
        private IpInfo ParseResponse(WhoisResponse response, string ip)
        {
            _logger.LogInformation($"Trying parse response for ip {ip}");
            var lines  = response.Raw.Split('\n').Select(x => TrimAll(x));
            var result = new IpInfo
            {
                Ip      = ip,
                Company = response.OrganizationName
            };

            try
            {
                result.Subnet = response.AddressRange.ToCidrString();
            }
            catch
            {
                result.Subnet = response.AddressRange.ToString();
            }

            var countryLine = lines.FirstOrDefault(x => x.ToLower().Contains("country:"));

            if (countryLine != null)
            {
                var country = TrimAll(countryLine.Split(':')[1]);
                result.Country = country;
            }
            return(result);
        }
Esempio n. 10
0
        public async Task <ActionResult> VisitShortenUrl(URLShortenViewModel reqInfo)
        {
            try
            {
                VisitedUserData vistedUser    = new VisitedUserData();
                IpInfo          visitedIPData = new IpInfo();

                // Private details
                vistedUser.HostMachineName  = Dns.GetHostName();
                vistedUser.MachinePrivateIP = Dns.GetHostByName(vistedUser.HostMachineName).AddressList[0].ToString();

                // Public details
                visitedIPData = GetUserDetailByIp(GetPublicIP());
                vistedUser.MachinePublicIP     = visitedIPData.Ip;
                vistedUser.LongURL             = reqInfo.longURL;
                vistedUser.ShortenURL          = reqInfo.shortenURL;
                vistedUser.VisitedCountry      = visitedIPData.Country;
                vistedUser.VisitedRegion       = visitedIPData.Region;
                vistedUser.VisitedCity         = visitedIPData.City;
                vistedUser.ServiceProviderName = visitedIPData.Hostname;

                // Save Details to DB

                return(Redirect(reqInfo.shortenURL));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 11
0
        public IpInfo Search(string ip)
        {
            if (string.IsNullOrEmpty(ip))
            {
                throw new ArgumentException(nameof(ip));
            }

            if (_search.TryCity(ip, out var city))
            {
                var ipinfo = new IpInfo
                {
                    IpAddress      = ip,
                    CountryCode    = city.Country.IsoCode,
                    Country        = city.Country.Name,
                    Province       = city.MostSpecificSubdivision.Name,
                    ProvinceCode   = city.MostSpecificSubdivision.IsoCode,
                    City           = city.City.Name,
                    PostCode       = city.Postal.Code,
                    Latitude       = city.Location.Latitude,
                    Longitude      = city.Location.Longitude,
                    AccuracyRadius = city.Location.AccuracyRadius
                };
                return(ipinfo);
            }
            else
            {
                return(new IpInfo());
            }
        }
Esempio n. 12
0
        /// <summary>
        /// 自动查询3网段ip
        /// </summary>
        /// <param name="draw"></param>
        public MessageHandler(Drawing draw)
        {
            List <string> temp = new List <string>();

            temp = IpInfo.GetAddressIP();

            /*foreach (string index in temp)
             * {
             *  try
             *  {
             *      string[] ay = index.Split('.');
             *      if (ay[2] == "3")
             *      {
             *          WebsocketIp = index;
             *          goto IPLABLE;
             *      }
             *  }
             *  catch(Exception e)
             *  { continue;
             *  }
             *
             * }*/

            WebsocketIp   = System.Configuration.ConfigurationManager.AppSettings["WebsockectIp"];
            WebsocketPort = int.Parse(System.Configuration.ConfigurationManager.AppSettings["WebsockectPort"]);
IPLABLE:
            this.draw = draw;
            //Task.Factory.StartNew(WebSocketSvrThread);
            StartWebsocketClientThread(WebsocketIp, WebsocketPort);
        }
Esempio n. 13
0
        protected void setData(KeyValuePair <Guid, string> keyValuePair)
        {
            // Initialize a client using the validated configuration
            using (var client = XConnectHelper.GetClient())
            {
                try
                {
                    var channelId = Guid.Parse("52B75873-4CE0-4E98-B63A-B535739E6180"); // "email newsletter" channel

                    // Create a new contact with the identifier
                    Contact knownContact = new Contact();

                    PersonalInformation personalInfoFacet = new PersonalInformation();

                    personalInfoFacet.FirstName = "Abhi" + Guid.NewGuid().ToString();
                    personalInfoFacet.LastName  = "Marwah";
                    personalInfoFacet.JobTitle  = "Sitecore Architect";
                    personalInfoFacet.Gender    = "Male";
                    personalInfoFacet.Nickname  = "Aussie";
                    client.SetFacet <PersonalInformation>(knownContact, PersonalInformation.DefaultFacetKey, personalInfoFacet);

                    EmailAddressList emails = new EmailAddressList(new EmailAddress("*****@*****.**", true), "Email");

                    client.SetFacet(knownContact, emails);


                    PageViewEvent pageView = new PageViewEvent(DateTime.Now.ToUniversalTime(), keyValuePair.Key, 1, "en");
                    pageView.ItemLanguage            = "en";
                    pageView.Duration                = new TimeSpan(3000);
                    pageView.SitecoreRenderingDevice = new SitecoreDeviceData(new Guid("{fe5d7fdf-89c0-4d99-9aa3-b5fbd009c9f3}"), "Default");
                    pageView.Url = keyValuePair.Value;


                    client.AddContact(knownContact);

                    // Create a new interaction for that contact
                    Interaction interaction = new Interaction(knownContact, InteractionInitiator.Brand, channelId, "");

                    // Add events - all interactions must have at least one event
                    interaction.Events.Add(pageView);

                    IpInfo ipInfo = new IpInfo("127.0.0.1");

                    ipInfo.BusinessName = "Sitecore Consultancy";

                    client.SetFacet <IpInfo>(interaction, IpInfo.DefaultFacetKey, ipInfo);


                    // Add the contact and interaction
                    client.AddInteraction(interaction);

                    // Submit contact and interaction - a total of two operations
                    client.Submit();
                }
                catch (XdbExecutionException ex)
                {
                    // Deal with exception
                }
            }
        }
Esempio n. 14
0
        public KeyValuePair <string, int>[] GetTop10Users(string logPath)
        {
            var usersStats = new Dictionary <string, int>();
            var fileLines  = File.ReadAllLines(logPath);

            Parallel.For(0, fileLines.Length, new ParallelOptions {
                MaxDegreeOfParallelism = 2
            },
                         i =>
            {
                var ipInfo = IpInfo.Parse(fileLines[i]);

                lock (usersStats)
                {
                    if (!usersStats.ContainsKey(ipInfo.Ip))
                    {
                        usersStats.Add(ipInfo.Ip, ipInfo.CallDuration);
                    }
                    else
                    {
                        usersStats[ipInfo.Ip] += ipInfo.CallDuration;
                    }
                }
            });

            return(usersStats.OrderByDescending(keyValuePair => keyValuePair.Value).Take(10).ToArray());
        }
Esempio n. 15
0
        public string GetLocationByIp(string ip)
        {
            string          location = "Unlocated";
            Regex           ipRegex  = new Regex(@"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b");
            MatchCollection result   = ipRegex.Matches(ip);

            if (result.Any())
            {
                if (ip.StartsWith("10.") || ip.StartsWith("100.") || ip.StartsWith("127.") || ip.StartsWith("172.") || ip.StartsWith("192."))
                {
                    return("Local address");
                }
                IpInfo ipInfo = new IpInfo();
                try
                {
                    string info = new WebClient().DownloadString("http://ipinfo.io/" + ip);
                    ipInfo   = JsonConvert.DeserializeObject <IpInfo>(info);
                    location = ipInfo.City + ", " + ipInfo.Country + ", " + ipInfo.Region;
                }
                catch (Exception)
                {
                    ipInfo.Country = null;
                }
            }
            return(location);
        }
Esempio n. 16
0
        private static string GetLocation(IpInfo info)
        {
            string ip = string.Format("{0}.{1}.{2}.{3}", info.Ip1, info.Ip2, info.Ip3, info.Ip4);

            Discuz.Forum.IpSearch.PHCZIP phczip = new IpSearch.PHCZIP();
            return(phczip.GetAddressWithIP(ip) == "" ? "未知地址": phczip.GetAddressWithIP(ip));
        }
        private async Task <string> GetCountryByIp()
        {
            try
            {
                var client   = _clientFactory.CreateClient();
                var remoteIp = GetRemoteIp();
                var token    = _configuration["ipInfoToken"];
                var response = await client.GetAsync($"http://ipinfo.io/{remoteIp}?token={token}");

                if (!response.IsSuccessStatusCode)
                {
                    return("none");
                }

                using var responseStream = await response.Content.ReadAsStreamAsync();

                IpInfo ipInfo = await JsonSerializer.DeserializeAsync <IpInfo>(responseStream);

                return(ipInfo.Country);
            }
            catch (Exception ex)
            {
                _logger.LogError($"GetCountryByIP Error: {ex.Message}");
                return("none");
            }
        }
Esempio n. 18
0
        public static string GetCountryAPI()
        {
            string ip = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

            if (string.IsNullOrEmpty(ip))
            {
                ip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            }

            IpInfo ipInfo = new IpInfo();
            string info   = new WebClient().DownloadString("http://ipinfo.io/" + ip);

            ipInfo         = JsonConvert.DeserializeObject <IpInfo>(info);
            ipInfo.Country = ipInfo.Country;

            string apiURL = ConfigurationManager.AppSettings["APIUrl"];

            string apiUrl_TestCountry     = ConfigurationManager.AppSettings["APIUrl_TestCountry"];
            string originatingFromCountry = ipInfo.Country;

            if (originatingFromCountry == "AM" || originatingFromCountry == apiUrl_TestCountry)
            {
                apiURL = ConfigurationManager.AppSettings["APIUrl_Armenia"];
            }

            HttpContext.Current.Request.Cookies["IPAddress"].Value = ip;
            HttpContext.Current.Request.Cookies["Country"].Value   = ipInfo.Country;

            return(apiURL);
        }
Esempio n. 19
0
        public KeyValuePair <string, int>[] GetTop10Users(string logPath)
        {
            var usersStats = new ConcurrentDictionary <string, int>();

            Parallel.ForEach(File.ReadLines(logPath),
                             () => new Dictionary <string, int>(),
                             (line, _, localDictionary) =>
            {
                var ipInfo = IpInfo.Parse(line);

                if (!localDictionary.ContainsKey(ipInfo.Ip))
                {
                    localDictionary.Add(ipInfo.Ip, ipInfo.CallDuration);
                }
                else
                {
                    localDictionary[ipInfo.Ip] += ipInfo.CallDuration;
                }

                return(localDictionary);
            },
                             localDictionary =>
            {
                foreach (var ip in localDictionary.Keys)
                {
                    usersStats.AddOrUpdate(ip, key => localDictionary[key],
                                           (key, oldValue) => oldValue + localDictionary[key]);
                }
            }
                             );

            return(usersStats.OrderByDescending(keyValuePair => keyValuePair.Value).Take(10).ToArray());
        }
Esempio n. 20
0
        public void SerializeIpInfo_WhenCalled_ReturnedString(IpInfo ipInfo)
        {
            // Act
            var actual = _sut.Serialize(ipInfo);

            // Assert
            actual.Should().NotBeEmpty();
        }
Esempio n. 21
0
    void CreateTcpClient(IpInfo ipInfo)
    {
        //1新 建 socket
        Socket   socket   = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        EndPoint endPoint = new IPEndPoint(IPAddress.Parse(ipInfo.Ip), ipInfo.Port);

        socket.Connect(endPoint);
        socket.Send(Encoding.UTF8.GetBytes(""));
        Debug.Log(GetSrting(socket));
    }
Esempio n. 22
0
        private static void Get_Information()
        {
            CaptureDesktop();
            Machine_Name = System.Environment.MachineName;
            IpInfo ipInfo = new IpInfo();

            string info = new WebClient().DownloadString("http://ipinfo.io");

            JavaScriptSerializer jsonObject = new JavaScriptSerializer();

            ipInfo = jsonObject.Deserialize <IpInfo>(info);

            RegionInfo region = new RegionInfo(ipInfo.Country);

            RealRegion = (ipInfo.Region);
            IP         = (ipInfo.Ip);
            Org        = (ipInfo.Org);
            City       = (ipInfo.City);
            Postal     = (ipInfo.Postal);

            //Needs fix
            if (Postal == empty)
            {
                Postal = "Not found.";
            }
            if (Postal == " ")
            {
                Postal = "Not found.";
            }
            if (Postal == "")
            {
                Postal = "Not found.";
            }
            //Console.WriteLine(Postal);
            //Console.ReadKey();

            //Console.WriteLine(RealRegion);
            //Console.WriteLine(IP);
            //Console.WriteLine(Org);
            //Console.WriteLine(City);
            //Console.WriteLine(Postal);
            //Console.WriteLine("STOP");
            //Console.ReadKey();

            //Console.WriteLine(region.EnglishName);
            if (region.EnglishName.Contains("France"))
            {
                Country = ":flag_fr:";
            }
            Console.WriteLine("-------------------------------------------------------------------------------------------");
            Console.WriteLine("Sending Informations over server.");
            Console.WriteLine("-------------------------------------------------------------------------------------------");
            UploadImage();
            Send_Information();
        }
Esempio n. 23
0
        private IpInfo GetLocationByIp()
        {
            //Get external IP
            string ip = new WebClient().DownloadString("http://ifconfig.me");
            //Get info about IP
            string info = new WebClient().DownloadString("http://ipinfo.io/" + ip);
            //Conversion to object
            IpInfo ipInfo = JsonConvert.DeserializeObject <IpInfo>(info);

            return(ipInfo);
        }
Esempio n. 24
0
        public void SerializeIpInfo_WhenCalled_ReturnedString(IpInfo ipInfo)
        {
            // Arrange
            var serializer = new JsonSerializer();

            // Act
            var actual = serializer.Serialize(ipInfo);

            // Assert
            actual.Should().NotBeEmpty();
        }
Esempio n. 25
0
 internal void ReportIpInfoFacet(IpInfo ipInfoFacet)
 {
     if (ipInfoFacet != null)
     {
         Console.WriteLine("\tInteraction business name: " + ipInfoFacet.BusinessName);
     }
     else
     {
         Console.WriteLine("\tNo business name available.");
     }
 }
Esempio n. 26
0
        public static void DebugWindwosInfo(string netframworkversion, string windowsver)
        {
            //Old folder
            //var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath.ToString();
            //var newpath = path.Replace(@"\user.config", "").Trim();
            //string filePath = newpath + @"\DebugLogs\WinInfo_" + Environment.UserName + ".txt";

            /*if (!Directory.Exists(newpath + @"\DebugLogs"))
             * {
             *  Directory.CreateDirectory(newpath + @"\DebugLogs");
             * }*/

            string filePath = exePath + @"\Logs\ToolInfo_" + Environment.UserName + ".txt";

            using (FileStream fs = File.Create(filePath))
            {
            }

            using (StreamWriter writer = new StreamWriter(filePath, true))
            {
                writer.WriteLine("-----------------------------------------------------------------------------");
                writer.WriteLine("File Generated Date: " + DateTime.Now.ToString());
                writer.WriteLine("Username: "******"Computer Name: " + SystemInformation.ComputerName);
                writer.WriteLine("Tool Version: v" + Application.ProductVersion);
                writer.WriteLine("Tool Build Date: " + Utils.GetLinkerDateTime(Assembly.GetEntryAssembly(), null).ToString());
                writer.WriteLine("Main Windows Culture: " + ci.Name.ToString());
                writer.WriteLine(netframworkversion);
                writer.WriteLine(windowsver);

                if (InternetCheck.ConnectToInternet() == true)
                {
                    IpInfo ipInfo = new IpInfo();
                    string info   = new WebClient().DownloadString("http://ipinfo.io");
                    JavaScriptSerializer jsonObject = new JavaScriptSerializer();
                    ipInfo = jsonObject.Deserialize <IpInfo>(info);
                    RegionInfo region = new RegionInfo(ipInfo.Country);
                    writer.WriteLine("Country: " + region.EnglishName);
                }
                else
                {
                    writer.WriteLine("Country: Can´t connect to IP... Waiting for internet connection...");
                }
            }

            using (StreamReader sr = File.OpenText(filePath))
            {
                while ((sr.ReadLine()).StartsWith("Windows:") && (sr.ReadLine()).StartsWith("NetFramework:"))
                {
                    return;
                }
            }
        }
    public static void GetCountryByIP()
    {
        IpInfo ipInfo = new IpInfo();
        string info   = new WebClient().DownloadString("http://ipinfo.io");
        JavaScriptSerializer jsonObject = new JavaScriptSerializer();

        ipInfo = jsonObject.Deserialize <IpInfo>(info);
        RegionInfo region = new RegionInfo(ipInfo.Country);

        Console.WriteLine(region.EnglishName);
        Console.ReadLine();
    }
Esempio n. 28
0
        public async Task ExecuteGroupAsync(CommandContext ctx,
                                            [Description("IP.")] IPAddress ip)
        {
            IpInfo info = await IpGeolocationService.GetInfoForIpAsync(ip);

            if (!info.Success)
            {
                throw new CommandFailedException($"Retrieving IP geolocation info failed! Details: {info.ErrorMessage}");
            }

            await ctx.RespondAsync(embed : info.ToDiscordEmbed(this.ModuleColor));
        }
Esempio n. 29
0
File: Ips.cs Progetto: xiongeee/BBX
        public static string GetLocation(IpInfo info)
        {
            string iPValue = String.Format("{0}.{1}.{2}.{3}", info.Ip1, info.Ip2, info.Ip3, info.Ip4);
            var    addr    = Ip.GetAddress(iPValue);

            if (!String.IsNullOrEmpty(addr))
            {
                return(addr);
            }

            return("未知地址");
        }
Esempio n. 30
0
        public void RegisterOfflineInteraction(string source, string identifier, FaceApiFacet face)
        {
            using (XConnectClient client = GetClient())
            {
                try
                {
                    IdentifiedContactReference reference = new IdentifiedContactReference(source, identifier);

                    Contact existingContact = client.Get <Contact>(
                        reference,
                        new ContactExpandOptions(PersonalInformation.DefaultFacetKey));

                    if (existingContact == null)
                    {
                        return;
                    }

                    Interaction interaction = new Interaction(existingContact, InteractionInitiator.Contact, channelId: Settings.OfflineChannelId, userAgent: "video camera");

                    //Add Device profile
                    DeviceProfile newDeviceProfile = new DeviceProfile(Guid.NewGuid());
                    newDeviceProfile.LastKnownContact = existingContact;
                    client.AddDeviceProfile(newDeviceProfile);
                    interaction.DeviceProfile = newDeviceProfile;

                    //Add fake Ip info
                    IpInfo fakeIpInfo = new IpInfo("127.0.0.1");
                    fakeIpInfo.BusinessName = "Home";
                    client.SetFacet <IpInfo>(interaction, IpInfo.DefaultFacetKey, fakeIpInfo);

                    //Add fake webvisit
                    WebVisit fakeWebVisit = new WebVisit();
                    fakeWebVisit.SiteName = "Offline";
                    client.SetFacet <WebVisit>(interaction, WebVisit.DefaultFacetKey, fakeWebVisit);

                    //Adding FaceApi facet
                    client.SetFacet <FaceApiFacet>(interaction, FaceApiFacet.DefaultFacetKey, face);

                    Outcome outcome = new Outcome(Settings.OfflineGoalId, DateTime.UtcNow, "USD", 0);
                    outcome.EngagementValue = 10;
                    outcome.Text            = "Face recognized";
                    interaction.Events.Add(outcome);

                    client.AddInteraction(interaction);

                    client.Submit();
                }
                catch (XdbExecutionException ex)
                {
                }
            }
        }
Esempio n. 31
0
        void connectionsWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            #if !MONO
            IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();

            while (!connectionsWorker.CancellationPending)
            {
                try
                {
                    #region -- xml --
                    // http://ipinfodb.com/ip_location_api.php

                    // http://ipinfodb.com/ip_query2.php?ip=74.125.45.100,206.190.60.37&timezone=false

                    //<?xml version="1.0" encoding="UTF-8"?>
                    //<Locations>
                    //  <Location id="0">
                    //    <Ip>74.125.45.100</Ip>
                    //    <Status>OK</Status>
                    //    <CountryCode>US</CountryCode>
                    //    <CountryName>United States</CountryName>
                    //    <RegionCode>06</RegionCode>
                    //    <RegionName>California</RegionName>
                    //    <City>Mountain View</City>
                    //    <ZipPostalCode>94043</ZipPostalCode>
                    //    <Latitude>37.4192</Latitude>
                    //    <Longitude>-122.057</Longitude>
                    //  </Location>
                    #endregion

                    lock (TcpState)
                    {
                        //TcpConnectionInformation[] tcpInfoList = properties.GetActiveTcpConnections();
                        //foreach(TcpConnectionInformation i in tcpInfoList)
                        //{

                        //}

                        CountryStatus.Clear();
                        ManagedIpHelper.UpdateExtendedTcpTable(false);

                        foreach (TcpRow i in ManagedIpHelper.TcpRows)
                        {
                            #region -- update TcpState --
                            string Ip = i.RemoteEndPoint.Address.ToString();

                            // exclude local network
                            if (!Ip.StartsWith("192.168.") && !Ip.StartsWith("127.0."))
                            {
                                IpInfo info;
                                if (!TcpState.TryGetValue(Ip, out info))
                                {
                                    info = new IpInfo();
                                    TcpState[Ip] = info;

                                    // request location info
                                    lock (TcpStateNeedLocationInfo)
                                    {
                                        if (!TcpStateNeedLocationInfo.Contains(Ip))
                                        {
                                            TcpStateNeedLocationInfo.Add(Ip);

                                            if (!ipInfoSearchWorker.IsBusy)
                                            {
                                                ipInfoSearchWorker.RunWorkerAsync();
                                            }
                                        }
                                    }
                                }

                                info.State = i.State;
                                info.Port = i.RemoteEndPoint.Port;
                                info.StatusTime = DateTime.Now;

                                try
                                {
                                    Process p;
                                    if (!ProcessList.TryGetValue(i.ProcessId, out p))
                                    {
                                        p = Process.GetProcessById(i.ProcessId);
                                        ProcessList[i.ProcessId] = p;
                                    }
                                    info.ProcessName = p.ProcessName;
                                }
                                catch
                                {
                                }

                                if (!string.IsNullOrEmpty(info.CountryName))
                                {
                                    if (!CountryStatus.ContainsKey(info.CountryName))
                                    {
                                        CountryStatus[info.CountryName] = 1;
                                    }
                                    else
                                    {
                                        CountryStatus[info.CountryName]++;
                                    }
                                }
                            }
                            #endregion
                        }
                    }

                    // launch tracer if needed
                    if (TryTraceConnection)
                    {
                        if (!iptracerWorker.IsBusy)
                        {
                            lock (TcpStateNeedtraceInfo)
                            {
                                if (TcpStateNeedtraceInfo.Count > 0)
                                {
                                    iptracerWorker.RunWorkerAsync();
                                }
                            }
                        }
                    }

                    connectionsWorker.ReportProgress(100);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("connectionsWorker_DoWork: " + ex.ToString());
                }
                Thread.Sleep(3333);
            }
            tcpConnections.Clear();
            #endif
        }
Esempio n. 32
0
        List<IpInfo> GetIpHostInfo(string iplist)
        {
            List<IpInfo> ret = new List<IpInfo>();
            bool retry = false;

            string iplistNew = string.Empty;

            string[] ips = iplist.Split(',');
            foreach (var ip in ips)
            {
                IpInfo val = IpCache.GetDataFromCache(ip);
                if (val != null)
                {
                    ret.Add(val);
                }
                else
                {
                    if (iplistNew.Length > 0)
                    {
                        iplistNew += ",";
                    }
                    iplistNew += ip;
                }
            }

            if (!string.IsNullOrEmpty(iplistNew))
            {
                Debug.WriteLine("GetIpHostInfo: " + iplist);

                string reqUrl = string.Format("http://api.ipinfodb.com/v2/ip_query.php?key=fbea1992ab11f7125064590a417a8461ccaf06728798c718dbd2809b31a7a5e0&ip={0}&timezone=false", iplistNew);

                while (true)
                {
                    ret.Clear();
                    try
                    {
                        HttpWebRequest httpReq = HttpWebRequest.Create(reqUrl) as HttpWebRequest;
                        {
                            string result = string.Empty;
                            using (HttpWebResponse response = httpReq.GetResponse() as HttpWebResponse)
                            {
                                using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8))
                                {
                                    result = reader.ReadToEnd();
                                }
                                response.Close();
                            }

                            XmlDocument x = new XmlDocument();
                            x.LoadXml(result);

                            XmlNodeList nodes = x.SelectNodes("/Response");
                            foreach (XmlNode node in nodes)
                            {
                                string Ip = node.SelectSingleNode("Ip").InnerText;

                                IpInfo info = new IpInfo();
                                {
                                    info.Ip = Ip;
                                    info.CountryName = node.SelectSingleNode("CountryName").InnerText;
                                    info.RegionName = node.SelectSingleNode("RegionName").InnerText;
                                    info.City = node.SelectSingleNode("City").InnerText;
                                    info.Latitude = double.Parse(node.SelectSingleNode("Latitude").InnerText, CultureInfo.InvariantCulture);
                                    info.Longitude = double.Parse(node.SelectSingleNode("Longitude").InnerText, CultureInfo.InvariantCulture);
                                    info.CacheTime = DateTime.Now;

                                    ret.Add(info);
                                }

                                IpCache.PutDataToCache(Ip, info);
                            }
                        }

                        break;
                    }
                    catch (Exception ex)
                    {
                        if (retry) // fail in retry too, full stop ;}
                        {
                            break;
                        }
                        retry = true;
                        reqUrl = string.Format("http://backup.ipinfodb.com/v2/ip_query.php?key=fbea1992ab11f7125064590a417a8461ccaf06728798c718dbd2809b31a7a5e0&ip={0}&timezone=false", iplist);
                        Debug.WriteLine("GetIpHostInfo: " + ex.Message + ", retry on backup server...");
                    }
                }
            }
            return ret;
        }
        /// <summary>
        /// InitObject: Initializes the VShieldEdgeConfig object.
        /// </summary>
        /// <returns>VShieldEdgeConfig</returns>
        private VShieldEdgeConfig InitObject()
        {
            VShieldEdgeConfig vsec = new VShieldEdgeConfig();
            FirewallConfig fwconf = new FirewallConfig();
            FirewallRule fwrule = new FirewallRule();
            PortInfo dpi = new PortInfo();
            PortInfo spi = new PortInfo();
            IpInfo dip = new IpInfo();
            IpInfo sip = new IpInfo();

            try
            {
                fwrule.destinationIpAddress = dip;
                fwrule.destinationPort = dpi;
                fwrule.ruleId = 0;
                fwrule.sourceIpAddress = sip;
                fwrule.sourcePort = spi;

                if (_FirewallRules.FirewallConfig.Count > 0)
                {
                    _FirewallRules.FirewallConfig.Add(fwrule);
                    return _FirewallRules;
                }
                else
                {
                    fwconf.Add(fwrule);
                    vsec.FirewallConfig = fwconf;
                    return vsec;
                }
            }
            catch (Exception e) { WriteObject("C-Sharp Exception: " + e); return null; }
        }
Esempio n. 34
0
        //ip监控
        public void threadIp(bool is_first, int exec)
        {
            string db_dir = System.Windows.Forms.Application.StartupPath + "\\db.accdb";
            bool begin = tool.execute_or_not("instrument_connection", db_dir, ip, is_first, exec);
            if (begin == true)
            {
                monitor read = new monitor();
                string[] ss = tool.readconfig("ip");
                foreach (string aa in ss)
                {
                    if (aa != "")
                    {
                        ipList.Add(aa);
                    }
                }
                string ip_detail = "";
                for (int i = 1; i < ipList.Count; i++)
                {
                    if (ipList[i] != "\r\n")
                    {
                        string[] dd = Regex.Split(ipList[i], "#", RegexOptions.IgnoreCase);
                        int start = int.Parse(dd[2]);
                        int end = int.Parse(dd[3]);
                        int crrunt = int.Parse(DateTime.Now.Hour.ToString("00") + DateTime.Now.Minute.ToString("00"));
                        ////textBox4.Text = start.ToString();
                        if (crrunt > start && crrunt < end)
                        {

                            if (!mm.CmdPing(dd[1]))
                            {
                                IpInfo ipinfo = new IpInfo();
                                ipinfo.IpAddress = dd[1];
                                ipinfo.WarningDateTime = DateTime.Now;
                                ipinfo.Iphost = dd[0];
                                ipinfo.PingTimes = 1;//默认第一次
                                ///ping 失败以后累加个数,如果第一次ping失败,先累加,达到一定量以后再发送邮件
                                ///
                                string str5 = System.Windows.Forms.Application.StartupPath;
                                string a = str5 + "\\db.accdb";
                                Tool_Class.AccessDbClass1 db = new Tool_Class.AccessDbClass1();
                                db.AccessDbClass2(a);
                                string egg = "E";
                                string value = dd[0] + "的ip:" + dd[1] + "连接不通";
                                string sql11 = "insert into Status_Histroy (para_name,details,flag,create_date) values ('instrument_connection','" + value + "','" + egg + "','" + DateTime.Now + "')";
                                bool ee = db.ExecuteSQLNonquery(sql11);

                            }
                            string value3 = dd[0] + "的ip:" + dd[1] + "连接不通";
                            string sql4 = "select count(*) from Status_Histroy where details = '" + value3 + "' and sign is null";
                            DataTable count = tool.DbToDatatable(sql4);
                            int num = int.Parse(count.Rows[0][0].ToString());
                            int warntime = int.Parse(tool.readconfig("jb", "netwarn"));
                            int errortime = int.Parse(tool.readconfig("bj", "neterror"));
                            string value11="";
                            if (num > warntime)
                            {
                                value11 = dd[0] + "的ip:" + dd[1] + "有" + num + "次连接不通;\n\r";
                                string sql3 = "update Status_Now set para_value='警告',create_date = '" + DateTime.Now + "',flag = 'W' where para_name = 'instrument_connection'";
                                tool.AccessDbclass(sql3);

                            }
                            if (num > errortime)
                            {
                                value11 = dd[0] + "的ip:" + dd[1] + "有" + num + "次连接不通;\n\r";
                                string sql3 = "update Status_Now set para_value='错误',create_date = '" + DateTime.Now + "',flag = 'E' where para_name = 'instrument_connection'";
                                tool.AccessDbclass(sql3);

                            }
                            ip_detail += value11;

                        }

                    }
                }
                if (ip_detail =="")
                {
                    ip_detail = "网络正常";
                }
                string sql12 = "update Status_Now set details ='" + ip_detail + "' where para_name = 'instrument_connection'";
                tool.AccessDbclass(sql12);
            }

            ipList.Clear();
        }
Esempio n. 35
0
        public IpInfo GetDataFromCache(string ip)
        {
            IpInfo ret = null;
             try
             {
            using(SQLiteConnection cn = new SQLiteConnection())
            {
            #if !MONO
               cn.ConnectionString = string.Format("Data Source=\"{0}\";", db);
            #else
               cn.ConnectionString = string.Format("Version=3,URI=file://{0},Default Timeout=33", db);
            #endif
               cn.Open();
               {
                  using(DbCommand com = cn.CreateCommand())
                  {
                     com.CommandText = "SELECT * FROM Cache WHERE Ip = '" + ip + "'";

                     using(DbDataReader rd = com.ExecuteReader())
                     {
                        if(rd.Read())
                        {
                           IpInfo val = new IpInfo();
                           {
                              val.Ip = ip;
                              val.CountryName = rd["CountryName"] as string;
                              val.RegionName = rd["RegionName"] as string;
                              val.City = rd["City"] as string;
                              val.Latitude = (double) rd["Latitude"];
                              val.Longitude = (double) rd["Longitude"];
                              val.CacheTime = (DateTime) rd["Time"];
                           }
                           ret = val;
                        }
                        rd.Close();
                     }
                  }
               }
               cn.Close();
            }
             }
             catch(Exception ex)
             {
            #if MONO
            Console.WriteLine("GetDataFromCache: " + ex.ToString());
            #endif
            Debug.WriteLine("GetDataFromCache: " + ex.ToString());
            ret = null;
             }

             return ret;
        }
Esempio n. 36
0
        public bool PutDataToCache(string ip, IpInfo data)
        {
            bool ret = true;
             try
             {
            using(SQLiteConnection cn = new SQLiteConnection())
            {
            #if !MONO
               cn.ConnectionString = string.Format("Data Source=\"{0}\";", db);
            #else
               cn.ConnectionString = string.Format("Version=3,URI=file://{0},FailIfMissing=True,Default Timeout=33", db);
            #endif

               cn.Open();
               {
                  {
                     using(DbTransaction tr = cn.BeginTransaction())
                     {
                        try
                        {
                           using(DbCommand cmd = cn.CreateCommand())
                           {
                              cmd.Transaction = tr;

                              cmd.CommandText = "INSERT INTO Cache(Ip, CountryName, RegionName, City, Latitude, Longitude, Time) VALUES(@p1, @p2, @p3, @p4, @p5, @p6, @p7)";

                              cmd.Parameters.Add(new SQLiteParameter("@p1", ip));
                              cmd.Parameters.Add(new SQLiteParameter("@p2", data.CountryName));
                              cmd.Parameters.Add(new SQLiteParameter("@p3", data.RegionName));
                              cmd.Parameters.Add(new SQLiteParameter("@p4", data.City));
                              cmd.Parameters.Add(new SQLiteParameter("@p5", data.Latitude));
                              cmd.Parameters.Add(new SQLiteParameter("@p6", data.Longitude));
                              cmd.Parameters.Add(new SQLiteParameter("@p7", data.CacheTime));

                              cmd.ExecuteNonQuery();
                           }
                           tr.Commit();
                        }
                        catch(Exception ex)
                        {
                           Console.WriteLine("PutDataToCache: " + ex.ToString());

                           Debug.WriteLine("PutDataToCache: " + ex.ToString());

                           tr.Rollback();
                           ret = false;
                        }
                     }
                  }
               }
               cn.Close();
            }
             }
             catch(Exception ex)
             {
            #if MONO
            Console.WriteLine("PutDataToCache: " + ex.ToString());
            #endif
            Debug.WriteLine("PutDataToCache: " + ex.ToString());
            ret = false;
             }
             return ret;
        }
Esempio n. 37
0
        void UpdateMarkerTcpIpToolTip(GMapMarker marker, IpInfo tcp, string info)
        {
            marker.ToolTipText = tcp.State.ToString();

            if (!string.IsNullOrEmpty(tcp.ProcessName))
            {
                marker.ToolTipText += " by " + tcp.ProcessName;
            }

            if (!string.IsNullOrEmpty(tcp.CountryName))
            {
                marker.ToolTipText += "\n" + tcp.CountryName;
            }

            if (!string.IsNullOrEmpty(tcp.City))
            {
                marker.ToolTipText += ", " + tcp.City;
            }
            else
            {
                if (!string.IsNullOrEmpty(tcp.RegionName))
                {
                    marker.ToolTipText += ", " + tcp.RegionName;
                }
            }

            marker.ToolTipText += "\n" + tcp.Ip + ":" + tcp.Port + "\n" + info;
        }
Esempio n. 38
0
        private VShieldEdgeConfig InitObject()
        {
            VShieldEdgeConfig vsec = new VShieldEdgeConfig();
            NATConfig natConfig = new NATConfig();
            NATRule natRule = new NATRule();
            PortInfo ipi = new PortInfo();
            PortInfo epi = new PortInfo();
            IpInfo iip = new IpInfo();
            IpInfo eip = new IpInfo();
            try
            {
                natRule.externalIpAddress = eip;
                natRule.externalPort = epi;
                natRule.internalIpAddress = iip;
                natRule.internalPort = ipi;

                if (_NatRules.NATConfig.Count > 0)
                {
                    _NatRules.NATConfig.Add(natRule);
                    return _NatRules;
                }
                else
                {
                    natConfig.Add(natRule);
                    vsec.NATConfig = natConfig;
                    return vsec;
                }
            }
            catch (Exception e) { WriteObject("C-Sharp Exception: " + e); return null; }
        }