public override void CheckPermission() { if (config.Instance.Site.NeedLogin && ctx.viewer.IsLogin == false) { echoRedirect(lang("exPlsLogin"), t2(new MainController().Login) + "?returnUrl=" + ctx.url.EncodeUrl); return; } if (config.Instance.Site.BannedIp.Length > 0) { if (IpUtil.IsAllowedIp(ctx.Ip, config.Instance.Site.BannedIp) == false) { echo(config.Instance.Site.BannedIpInfo); return; } } if (ctx.owner.obj is Site) { checkSitePermission(); } else if (ctx.owner.obj is User) { checkSpacePermission(); } else if (ctx.owner.obj is Group) { checkGroupPermission(); } }
public void LocalIpTest() { var ip = IpUtil.GetLocalIp(); _output.WriteLine("Local Ip: " + ip); Assert.False(string.IsNullOrEmpty(ip)); }
/// <summary> /// 添加日志 /// </summary> /// <param name="userInfo">用户信息</param> /// <param name="loginStatus">动作</param> public static void AddLog(BaseUserInfo userInfo, string loginStatus) { var systemCode = userInfo.SystemCode; var ipAddress = userInfo.IpAddress; var ipAddressName = IpUtil.GetInstance().FindName(userInfo.IpAddress); var macAddress = userInfo.MacAddress; AddLog(systemCode, userInfo, ipAddress, ipAddressName, macAddress, loginStatus); }
public void testIpWildResult() { Assert.AreEqual(IpUtil.GetIpWild("97.65.164.215", 0), "97.65.164.215"); Assert.AreEqual(IpUtil.GetIpWild("97.65.164.215", 5), "97.65.164.215"); Assert.AreEqual(IpUtil.GetIpWild("97.65.164.215", 1), "97.65.164.*"); Assert.AreEqual(IpUtil.GetIpWild("97.65.164.215", 2), "97.65.*.*"); Assert.AreEqual(IpUtil.GetIpWild("97.65.164.215", 3), "97.*.*.*"); Assert.AreEqual(IpUtil.GetIpWild("97.65.164.215", 4), "*.*.*.*"); }
public void LocalIpListTest() { var ipList = IpUtil.GetLocalIpAddressList(); foreach (var ip in ipList) { _output.WriteLine("Local Ip: " + ip); } Assert.NotNull(ipList); }
private void DeviceFound(Device dev) { var ip = IpUtil.GetIpFromHost(dev.Hostname); var ipString = ip == null ? "" : ip.ToString(); var yd = new YeelightData { Id = dev.Id, IpAddress = ipString, Name = dev.Name }; _controlService.AddDevice(yd).ConfigureAwait(false); }
private void SendUdpUnicast(byte[] data) { if (!_sending) { return; } var ep = IpUtil.Parse(IpAddress, 60222); _sender.SendTo(data, ep); }
public GlimmrData(SystemData sd) { Tag = "Glimmr"; Name ??= Tag; LastSeen = DateTime.Now.ToString(CultureInfo.InvariantCulture); LeftCount = sd.LeftCount; RightCount = sd.RightCount; TopCount = sd.TopCount; BottomCount = sd.BottomCount; IpAddress = IpUtil.GetLocalIpAddress(); Id = sd.CheckDeviceVariables(); }
public LifxData(LightBulb b) { if (b == null) { throw new ArgumentException("Invalid bulb data."); } HostName = b.HostName; IpAddress = IpUtil.GetIpFromHost(HostName).ToString(); Id = b.MacAddressName; Service = b.Service; Port = (int)b.Port; MacAddress = b.MacAddress; MacAddressString = b.MacAddressName; }
public void BandByUtil() { List <String> list = new List <String>(); list.Add("88.88.99.99"); list.Add("192.168.3.2-192.168.3.250"); list.Add("66.66.66.*"); list.Add("55.55.*.*"); list.Add("44.*.*.*"); list.Add("33.168.10.*-33.168.90.*"); list.Add("unknow"); Assert.IsFalse(IpUtil.IsAllowedIp("88.88.99.99", list)); Assert.IsTrue(IpUtil.IsAllowedIp("88.88.99.100", list)); Assert.IsFalse(IpUtil.IsAllowedIp("192.168.3.2", list)); Assert.IsFalse(IpUtil.IsAllowedIp("192.168.3.250", list)); Assert.IsTrue(IpUtil.IsAllowedIp("192.168.3.1", list)); Assert.IsTrue(IpUtil.IsAllowedIp("192.168.3.251", list)); Assert.IsFalse(IpUtil.IsAllowedIp("66.66.66.1", list)); Assert.IsFalse(IpUtil.IsAllowedIp("66.66.66.2", list)); Assert.IsFalse(IpUtil.IsAllowedIp("66.66.66.254", list)); Assert.IsFalse(IpUtil.IsAllowedIp("66.66.66.255", list)); Assert.IsFalse(IpUtil.IsAllowedIp("55.55.33.33", list)); Assert.IsFalse(IpUtil.IsAllowedIp("55.55.99.99", list)); Assert.IsTrue(IpUtil.IsAllowedIp("55.56.33.33", list)); Assert.IsFalse(IpUtil.IsAllowedIp("44.55.33.33", list)); Assert.IsFalse(IpUtil.IsAllowedIp("44.99.33.33", list)); Assert.IsTrue(IpUtil.IsAllowedIp("45.99.33.33", list)); Assert.IsFalse(IpUtil.IsAllowedIp("33.168.10.1", list)); Assert.IsFalse(IpUtil.IsAllowedIp("33.168.10.2", list)); Assert.IsFalse(IpUtil.IsAllowedIp("33.168.10.255", list)); Assert.IsFalse(IpUtil.IsAllowedIp("33.168.90.1", list)); Assert.IsFalse(IpUtil.IsAllowedIp("33.168.90.2", list)); Assert.IsFalse(IpUtil.IsAllowedIp("33.168.90.255", list)); Assert.IsFalse(IpUtil.IsAllowedIp("", list)); Assert.IsFalse(IpUtil.IsAllowedIp("unknow", list)); Assert.IsFalse(IpUtil.IsAllowedIp("abc", list)); Assert.IsFalse(IpUtil.IsAllowedIp("-", list)); Assert.IsTrue(IpUtil.IsAllowedIp("68.81.101.87", list)); Assert.IsTrue(IpUtil.IsAllowedIp("71.85.125.152", list)); Assert.IsTrue(IpUtil.IsAllowedIp("85.114.137.152", list)); }
/// <summary> /// Use this for sending color data to the panel /// </summary> /// <param name="n"></param> /// <param name="cs"></param> public NanoleafDevice(NanoleafData n, ColorService cs) : base(cs) { _brightness = -1; _targets = new Dictionary <int, int>(); _data = n; Id = _data.Id; var streamMode = n.Type is "NL29" or "NL42" ? 2 : 1; var controlService = cs.ControlService; var host = n.IpAddress; try { var ip = IpUtil.GetIpFromHost(n.IpAddress); if (ip != null) { host = ip.ToString(); } else { if (host.Contains(".local")) { host = host.Replace(".local", ""); ip = IpUtil.GetIpFromHost(host); } } if (ip != null) { host = ip.ToString(); } } catch (Exception) { //ignored } try { Log.Debug("Creating nano client: " + host); _nanoleafClient = new NanoleafClient(host, n.Token); Log.Debug("Nano client created."); _streamingClient = new NanoleafStreamingClient(host, streamMode, controlService.UdpClient); } catch (Exception e) { Log.Debug("Exception creating client..." + e.Message); } _frameWatch = new Stopwatch(); SetData(); controlService.RefreshSystemEvent += SetData; _disposed = false; cs.ColorSendEventAsync += SetColors; }
public sealed override void RefreshSystem() { var sd = DataUtil.GetSystemData(); _devMode = sd.DeviceMode; _hostName = _sd.DeviceName; _discovery?.Dispose(); var address = new List <IPAddress> { IPAddress.Parse(IpUtil.GetLocalIpAddress()) }; var service = new ServiceProfile(_hostName, "_glimmr._tcp", 21324, address); service.AddProperty("mac", sd.DeviceId); _discovery = new ServiceDiscovery(); _discovery.Advertise(service); }
public SystemData(bool setDefaults = false) { if (setDefaults) { RecId = 1; DevType = "DreamScreen4K"; CamWidth = 1920; CamHeight = 1080; CamType = 1; ScaleFactor = .5f; CaptureMode = 2; MinBrightness = 255; SaturationBoost = 0; DsIp = IpUtil.GetLocalIpAddress(); AudioThreshold = .01f; DefaultSet = true; } }
/// <summary> /// 用户退出 /// </summary> /// <param name="openId">信令</param> /// <param name="systemCode">系统编码</param> /// <param name="ipAddress">IP地址</param> /// <param name="macAddress">MAC地址</param> /// <returns>影响行数</returns> public bool SignOut(string openId, string systemCode = "Base", string ipAddress = null, string macAddress = null) { var result = 0; // 应该进行一次日志记录 // 从缓存读取、效率高 if (!string.IsNullOrWhiteSpace(openId)) { var userEntity = BaseUserManager.GetEntityByOpenIdByCache(openId); if (userEntity != null && userEntity.Id > 0) { var ipAddressName = string.Empty; if (!string.IsNullOrEmpty(ipAddress)) { ipAddressName = IpUtil.GetInstance().FindName(ipAddress); } BaseLogonLogManager.AddLog(systemCode, userEntity, ipAddress, ipAddressName, macAddress, Status.SignOut.ToDescription(), 0, 1); // 是否更新访问日期信息 if (!BaseSystemInfo.UpdateVisit) { return(result > 0); } // 最后一次登录时间 var sql = "UPDATE " + BaseUserLogonEntity.CurrentTableName + " SET " + BaseUserLogonEntity.FieldPreviousVisitTime + " = " + BaseUserLogonEntity.FieldLastVisitTime; //Troy.Cui 2020-02-29用户退出时也强制OpenId重新生成,和登录时一样强制生成OpenId sql += " , " + BaseUserLogonEntity.FieldOpenId + " = '" + Guid.NewGuid().ToString("N") + "'"; sql += ", " + BaseUserLogonEntity.FieldOpenIdTimeoutTime + " = " + DbHelper.GetDbNow(); sql += " , " + BaseUserLogonEntity.FieldUserOnline + " = 0 " + " , " + BaseUserLogonEntity.FieldLastVisitTime + " = " + DbHelper.GetDbNow(); sql += " WHERE " + BaseUserLogonEntity.FieldUserId + " = " + DbHelper.GetParameter(BaseUserEntity.FieldId); var dbParameters = new List <IDbDataParameter> { DbHelper.MakeParameter(BaseUserEntity.FieldId, userEntity.Id) }; result = ExecuteNonQuery(sql, dbParameters.ToArray()); } } return(result > 0); }
public void StartStream() { if (Streaming) { return; } LogUtil.Write("WLED: Initializing stream."); var onObj = new JObject( new JProperty("on", true), new JProperty("bri", 255) ); SendPost(onObj); _stripSender = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); _stripSender.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); _stripSender.Blocking = false; _stripSender.EnableBroadcast = false; ep = IpUtil.Parse(IpAddress, port); Streaming = true; LogUtil.Write("WLED: Streaming started..."); }
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { string ip = IpUtil.GetClientIp(context.HttpContext); if (string.IsNullOrWhiteSpace(ip)) { throw new HopexException($"无法取到来源IP,不允许访问"); } if (_options.IpWhiteList == null || _options.IpWhiteList.Count == 0) { throw new HopexException("无法读取IP白名单配置"); } if (!_options.IpWhiteList.Contains(ip)) { throw new HopexException($"IP[{ip}]无权范围"); } await next.Invoke(); }
private void myProxy_Load(object sender, EventArgs e) { //默认指定ip var ipStringArr = IpUtil.GetIpList(); if (ipStringArr.Length > 0) { int index = 0; for (int i = 0; i < ipStringArr.Length; i++) { string t = ipStringArr[i]; comboBoxIp.Items.Add(t); if (IpUtil.isIPV4(t)) { index = i; } } comboBoxIp.SelectedIndex = index; } //默认指定port textPort.Text = ConfigurationManager.AppSettings["defaultPort"]; }
/// <summary> /// 请求日志记录 /// </summary> public async Task InvokeAsync(HttpContext context) { context.Items["CorrelationId"] = Guid.NewGuid().ToString(); if (!context.Request.Path.HasValue || !context.Request.Path.Value.Contains("api/", StringComparison.InvariantCultureIgnoreCase)) { await _next(context); return; } var request = await FormatRequest(context.Request); var ip = IpUtil.GetClientIp(context); var userId = context.User?.GetId(); var packType = context.Request.GetPackType(); var converssionType = context.Request.GetConversionCurrency(); var originalBodyStream = context.Response.Body; using (var responseBody = new MemoryStream()) { context.Response.Body = responseBody; Stopwatch watch = Stopwatch.StartNew(); await _next(context); var response = await FormatResponse(context.Response); await responseBody.CopyToAsync(originalBodyStream); watch.Stop(); Log(ip, userId, packType.ToString(), converssionType, request, response, watch.ElapsedMilliseconds); } }
public void start(int port, String ip, String appName) { // valid if (appName == null || appName.Trim().Length == 0) { logger.Warn(">>>>>>>>>>>> xxl-job, executor registry config fail, appName is null."); return; } if (XxlJobExecutor.getAdminBizList() == null) { logger.Warn(">>>>>>>>>>>> xxl-job, executor registry config fail, adminAddresses is null."); return; } // executor address (generate addredd = ip:port) String executorAddress; if (ip != null && ip.Trim().Length > 0) { executorAddress = ip.Trim() + (":") + port; } else { executorAddress = IpUtil.getIpPort(port); } registryThread = new Thread( () => { // registry while (!toStop1) { try { RegistryParam registryParam = new RegistryParam(RegistryConfig.RegistType.EXECUTOR.ToString(), appName, executorAddress); foreach (AdminBiz adminBiz in XxlJobExecutor.getAdminBizList()) { try { Object registry = adminBiz.registry(registryParam); ReturnT <String> registryResult = adminBiz.registry(registryParam); if (registryResult != null && ReturnT <string> .SUCCESS_CODE == registryResult.code) { registryResult = ReturnT <string> .SUCCESS; logger.Info(string.Format(">>>>>>>>>>> xxl-job registry success, registryParam:{0}, registryResult:{1}", registryParam, registryResult)); break; } else { logger.Info(string.Format(">>>>>>>>>>> xxl-job registry fail, registryParam:{0}, registryResult:{1}", registryParam, registryResult)); } } catch (Exception e) { logger.Info($">>>>>>>>>>> xxl-job registry error, registryParam:{registryParam}", e); } } } catch (Exception e) { logger.Error(e.Message, e); } Thread.Sleep(RegistryConfig.BEAT_TIMEOUT * 1000); } // registry remove try { RegistryParam registryParam = new RegistryParam(RegistryConfig.RegistType.EXECUTOR.ToString(), appName, executorAddress); foreach (AdminBiz adminBiz in XxlJobExecutor.getAdminBizList()) { try { ReturnT <String> registryResult = adminBiz.registryRemove(registryParam); if (registryResult != null && ReturnT <string> .SUCCESS_CODE == registryResult.code) { registryResult = ReturnT <string> .SUCCESS; logger.Info(string.Format(">>>>>>>>>>> xxl-job registry-remove success, registryParam:{0}, registryResult:{1}", registryParam, registryResult)); break; } else { logger.Info(string.Format(">>>>>>>>>>> xxl-job registry-remove fail, registryParam:{0}, registryResult:{1}", registryParam, registryResult)); } } catch (Exception e) { logger.Info(string.Format(">>>>>>>>>>> xxl-job registry-remove error, registryParam:{0}", registryParam), e); } } } catch (Exception e) { logger.Error(e.Message, e); } logger.Warn(">>>>>>>>>>>> xxl-job, executor registry thread destory."); } ); registryThread.IsBackground = (true); registryThread.Start(); }
public String GetIp(int hideLength) { return(IpUtil.GetIpWild(this.Ip, hideLength)); }
/// <summary> /// 参数检查 /// </summary> /// <param name="context">当前请求上下文</param> /// <param name="userInfo">用户信息</param> /// <param name="checkLocalIp">检查内网</param> /// <param name="permissionCode">权限菜单的Code</param> /// <returns></returns> public static BaseResult ValidateParameter(HttpContext context, ref BaseUserInfo userInfo, bool checkLocalIp = true, string permissionCode = null) { var result = new BaseResult(); // 1:是否是有效的系统编号? if (context.Request["systemCode"] == null) { result.Status = false; result.StatusCode = Status.ParameterError.ToString(); result.StatusMessage = "systemCode " + Status.ParameterError.ToDescription(); return(result); } var systemCode = context.Request["systemCode"]; if (!BaseSystemManager.CheckSystemCode(systemCode)) { result.Status = false; result.StatusCode = Status.ParameterError.ToString(); result.StatusMessage = "systemCode 不是有效的系统编号"; return(result); } var ipAddress = Utils.GetIp(); // 2016-08-22 已经正常登录的用户,也可以调用验证码函数,这样接口程序更灵活一些,更方便被调用 if (context.Request["userInfo"] != null) { // 从当前使用的用户确定当前使用者 userInfo = BaseUserInfo.Deserialize(context.Request["userInfo"]); if (userInfo == null) { result.Status = false; result.StatusCode = Status.Error.ToString(); result.StatusMessage = "userInfo " + Status.Error.ToDescription(); return(result); } // 防止伪造、判断用户的有效性 if (!ServiceUtil.VerifySignature(userInfo)) { // LogUtil.WriteLine("userInfo.Signature:" + userInfo.Signature + " GetSignature(userInfo):" + ServiceUtil.GetSignature(userInfo)); result.Status = false; result.StatusCode = Status.SignatureError.ToString(); result.StatusMessage = "userInfo " + Status.SignatureError.ToDescription(); return(result); } // 这里需要是已经登录的用户,不是已经被踢掉的用户 if (!ValidateOpenId(userInfo.Id, userInfo.OpenId)) { result.Status = false; result.StatusCode = Status.ParameterError.ToString(); result.StatusMessage = "OpenId " + Status.ParameterError.ToDescription(); return(result); } } else { // 2016-08-09 吉日嘎拉,必须保证是服务器调用的,外部不允许直接调用,方式被短信轰炸,有安全漏洞。 // 检查是否为内部ip地址发送出去的手机短信 // 2016-08-09 宋彪 不仅仅针对短信发送,用户中心接口也要考虑 if (checkLocalIp) { if (!IpUtil.IsLocalIp(ipAddress)) { // 不是内网发出的, 也不是信任的ip列表里的,直接给拒绝发送出去 result.Status = false; result.StatusCode = Status.ErrorIpAddress.ToString(); result.StatusMessage = ipAddress + " " + Status.ErrorIpAddress.ToDescription(); return(result); } } // 应用唯一标识 string appKey; if (context.Request["appKey"] == null) { result.Status = false; result.StatusCode = Status.ParameterError.ToString(); result.StatusMessage = "appKey " + Status.ParameterError.ToDescription(); return(result); } else { appKey = context.Request["appKey"]; } // 应用的签名密钥 string appSecret; if (context.Request["appSecret"] == null) { result.Status = false; result.StatusCode = Status.ParameterError.ToString(); result.StatusMessage = "appSecret " + Status.ParameterError.ToDescription(); return(result); } else { appSecret = context.Request["appSecret"]; } // 检查服务的有效性,是否调用限制到了?是否有相应的权限 //result = BaseServicesLicenseManager.CheckService(appKey, appSecret, false, 0, 0, systemCode, permissionCode); //if (!result.Status) //{ // return result; //} // 从接口确定当前调用者 var userEntity = BaseUserManager.GetEntityByCodeByCache(appKey); if (userEntity != null) { userInfo = new BaseUserInfo { Id = userEntity.Id.ToString(), UserId = userEntity.Id, Code = userEntity.Code, UserName = userEntity.UserName, NickName = userEntity.NickName, RealName = userEntity.RealName, CompanyId = userEntity.CompanyId.ToString(), CompanyCode = userEntity.CompanyCode, CompanyName = userEntity.CompanyName, IpAddress = ipAddress }; } } result.Status = true; return(result); }