175.6.185.190
{
"scan_id": 1760802198,
"ip": "175.6.185.190",
"is_ipv4": true,
"is_ipv6": false,
"location": {
"network": "175.6.184.0/21",
"postal_code": "",
"coordinates": {
"latitude": "31.2222",
"longitude": "121.4581"
},
"geo_point": "31.2222, 121.4581",
"locale_code": "en",
"continent": "Asia",
"country_code": "CN",
"country_name": "China",
"city": "Shanghai"
},
"location_updated_at": "2025-10-20T00:42:54Z",
"asn": {
"number": "AS63835",
"organization": "No.293,Wanbao Avenue",
"country_code": ""
},
"asn_updated_at": "0001-01-01T00:00:00Z",
"whois": {
"network": "175.0.0.0/12",
"organization": "CHINANET HUNAN PROVINCE NETWORK",
"descr": "CHINANET HUNAN PROVINCE NETWORK,\nChina Telecom,\nNo.31,jingrong street,\nBeijing 100032",
"_encoding": {
"raw": "BASE64"
}
},
"whois_updated_at": "2024-12-09T19:03:46Z",
"tags": [
{
"name": "is_anonymous_proxy",
"pretty_name": "Anonymous Proxy",
"value": false,
"last_updated_at": "2025-10-20T00:42:54Z"
},
{
"name": "is_cdn",
"pretty_name": "CDN",
"value": false,
"last_updated_at": "2025-10-20T04:19:16Z"
},
{
"name": "is_satellite_provider",
"pretty_name": "Satellite Provider",
"value": false,
"last_updated_at": "2025-10-20T00:42:54Z"
}
],
"services": [
{
"port": 80,
"protocol": "tcp",
"name": "http",
"version": "",
"product": "OpenResty web app server",
"extra_info": "",
"tunnel": "",
"softwares": [
{
"uri": "cpe:/a:openresty:ngx_openresty",
"part": "a",
"vendor": "openresty",
"product": "ngx_openresty",
"version": "ANY",
"language": "ANY",
"edition": "ANY",
"update": "ANY"
}
],
"modules": {
"http": {
"body": "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!-- id 变量需要和config.ini id -->\r\n\r\n\r\n\r\n\t\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!doctype html>\r\n<html>\r\n<head>\r\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n<meta name=\"renderer\" content=\"webkit\" />\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<script type=\"text/javascript\">\r\n window._ResourceStringCache = window._ResourceStringCache || {};\r\n \r\n window._ResourceStringCache['date.format.time']='HH:mm';\r\n window._ResourceStringCache['date.format.datetime.2y']='yy-MM-dd HH:mm';\r\n window._ResourceStringCache['date.format.date.2y']='yy-MM-dd';\r\n window._ResourceStringCache['date.format.date7y']='yy-mm';\r\n window._ResourceStringCache['date.format.yearMonth']='yyyy-MM ';\r\n window._ResourceStringCache['date.format.year']='null';\r\n</script>\r\n\r\n\r\n<script type=\"text/javascript\">\r\nvar Com_Parameter = {\r\n\tContextPath:\"/\",\r\n\tResPath:\"/resource/\",\r\n\tStyle:\"default\",\r\n\tJsFileList:new Array,\r\n\tStylePath:\"/resource/style/default/\",\r\n\tLang:\"zh-cn\",\r\n\tCurrentUserId:\"16d7bfaef7999a25bdb28d04f8caf2d3\",\r\n\tCache:1758655705339,\r\n\tFirstDayInWeek: parseInt('1') - 1,\r\n\tCalendarMinuteStep:parseInt('1'),\r\n\tSessionExpireTip:\"会话过期,请打开新页面重新登录后再提交本页面。\",\r\n\tServiceNotAvailTip:\"与服务器连接不通,请联系系统管理员或等会再试。\",\r\n\tDate_format:\"yyyy-MM-dd\",\r\n\tDateTime_format:\"yyyy-MM-dd HH:mm\",\r\n\tSoftDeleteEnableModules:\"\",\r\n\tComfirmDelete:\"一旦选择了删除,所选记录的相关数据都会被删除,无法恢复!您确认要执行此删除操作吗?\",\r\n\tComfirmSoftDelete:\"您确定要将所选记录放入回收站吗?<br>\",\r\n\tOptSuccessInfo:\"您的操作已成功!\",\r\n\tOptFailureInfo:\"操作失败!\",\r\n\tclientType:\"-1\",\r\n\tserverPrefix : \"http://oa.chasesun.cn\",\r\n\tsmallMaxSize : \"500\",\r\n\tisSysMouring : \"false\"\r\n};\r\n</script>\r\n<!-- 是否开启合并加载js模式 -->\r\n\r\n\t\r\n\t\r\n\t\t<script type=\"text/javascript\" src='/resource/js/domain.js?s_cache=1758655705339'></script>\r\n\t\t<script type=\"text/javascript\" src='/sys/ui/js/LUI.js?s_cache=1758655705339'></script>\r\n\t\t<script type=\"text/javascript\" src=\"/resource/js/common.js?s_cache=1758655705339\"></script>\r\n\t\t<script type=\"text/javascript\" src=\"/resource/js/sea.js?s_cache=1758655705339\"></script>\r\n\t\r\n\r\n<script type=\"text/javascript\">\r\nseajs.config({\r\n\tthemes : {\n \"icon\": [\"sys/ui/extend/theme/default/style/icon.css\"],\n \"iconfont\": [\"sys/ui/extend/theme/default/style/iconfont.css\"],\n \"module\": [\"sys/ui/extend/theme/default/style/module.css\"],\n \"form\": [\"sys/ui/extend/theme/default/style/form.css\"],\n \"common\": [\"sys/ui/extend/theme/default/style/common.css\"],\n \"portal\": [\"sys/ui/extend/theme/default/style/portal.css\"],\n \"listview\": [\"sys/ui/extend/theme/default/style/listview.css\"],\n \"sns\": [\"sys/ui/extend/theme/default/style/sns.css\"],\n \"chart\": [\"sys/ui/extend/theme/default/style/chart.css\"],\n \"treefont\": [\"sys/ui/extend/theme/default/style/treefont.css\"],\n \"dialog\": [\"sys/ui/extend/theme/default/style/dialog.css\"],\n \"widget\": [\"sys/ui/extend/theme/default/style/widget.css\"],\n \"step\": [\"sys/ui/extend/theme/default/style/step.css\"],\n \"zone\": [\"sys/ui/extend/theme/default/style/zone.css\"],\n \"profile\": [\"sys/ui/extend/theme/default/style/profile.css\"],\n \"calendar\": [\"sys/ui/extend/theme/default/style/calendar.css\"],\n \"prompt\": [\"sys/ui/extend/theme/default/style/listview.css\"]\n},\r\n\tpaths: {\r\n\t\t'lui': 'sys/ui/js'\r\n\t},\r\n\talias: {\r\n\t\t'lui/jquery': 'resource/js/jquery',\r\n\t\t'lui/jquery-ui': 'resource/js/jquery-ui/jquery.ui'\r\n\t},\r\n\tpreload: ['/resource/js/plugin-theme.js','/resource/js/plugin-lang.js'],\r\n\tdebug: true,\r\n \tbase: '',\r\n \tenv : {\r\n \t \tcontextPath: '',\r\n \t\tnow : '2025-10-12 04:03',\r\n \t\tpageMaxWidth:'1200px',\r\n \t\tpattern : {\r\n \t\t\tdate : 'yyyy-MM-dd', \r\n \t\t\tdatetime : 'yyyy-MM-dd HH:mm',\r\n \t\t\ttime : 'HH:mm'\r\n \t\t},\r\n \t\tlocale : \"zh-cn\",\r\n \t\tconfig : {},\r\n \t\tcache : 1758655705339\r\n \t}\r\n});\r\n</script>\r\n\r\n<script type=\"text/javascript\">\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nNew_Com_RegisterFile(\"validation.jsp\", \"js/\");\r\n$KMSSValidation_Lang = {\r\n\t\"required\" : \"{name} 不能为空\",\r\n\t\"number\" : \"{name} 必须为有效数字类型.\",\r\n\t\"date\" : \"{name} 不是日期类型.\",\r\n\t\"email\" : \"{name} 必须为标准的邮件格式.\",\r\n\t\"url\" : \"{name} 必须为有效的url地址.\",\r\n\t\"digits\" : \"{name} 必须为整数.\",\r\n\t\"currency-dollar\" : \"{name} 必须为有效的货币格式,例如:100.00.\",\r\n\t\"alphanum\" : \"{name} 必须为英文或数字.\",\r\n\t\"alpha\" : \"{name} 必须为英文.\",\r\n\t\"maxLength\" : \"{name} 超出 {maxLength} 个英文字符限制\",\r\n\t\"range\" : \"{name} 没有在区间 {min} 和 {max}之间.\",\r\n\t\"min\" : \"{name} 必须大于或等于 {num}.\",\r\n\t\"max\" : \"{name} 必须小于或等于 {num}.\",\r\n\t\"scaleLength\" : \"{name} 小数位必须小于等于 {num}.\",\r\n\t\"before\" : \"{name} 不能晚于当前时间.\",\r\n\t\"after\" : \"{name} 不能早于当前时间.\",\r\n\t\"__datetime\" : \"{name} 不是日期时间类型.\",\r\n\t\"__date\" : \"{name} 不是日期类型.\",\r\n\t\"__time\" : \"{name} 不是时间类型.\",\r\n\t\"senWordsValidator\" : \"{name}中含有敏感词{senWords},请检查\"\r\n}\r\n\t\r\n\r\nNew_Com_RegisterFile(\"validator.jsp\", \"js/\");\r\nfunction validateTwoFields(form) {\r\n var bValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\");\r\n oTwoFields = eval('new ' + formName.value + '_twofields()');\r\n \r\n for (x in oTwoFields) {\r\n var field = form[oTwoFields[x][0]];\r\n var secondField = form[oTwoFields[x][2](\"secondProperty\")];\r\n \r\n if (field.type == 'text' ||\r\n field.type == 'textarea' ||\r\n field.type == 'select-one' ||\r\n field.type == 'radio' ||\r\n field.type == 'password') {\r\n \r\n var value;\r\n var secondValue;\r\n \r\n // get field's value\r\n if (field.type == \"select-one\") {\r\n var si = field.selectedIndex;\r\n value = field.options[si].value;\r\n secondValue = secondField.options[si].value;\r\n } else {\r\n value = field.value;\r\n secondValue = secondField.value;\r\n }\r\n \r\n if (value != secondValue) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oTwoFields[x][1];\r\n bValid = false;\r\n }\r\n }\r\n }\r\n \r\n if (fields.length > 0) {\r\n focusField.focus();\r\n alert(fields.join('\\n'));\r\n }\r\n return bValid;\r\n }\r\n\r\n /*$RCSfile: validateMinLength.js,v $ $Revision: 1.11 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * A field is considered valid if greater than the specified minimum.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * <strong>Caution:</strong> Using <code>validateMinLength</code> on a password field in a \r\n * login page gives unnecessary information away to hackers. While it only slightly\r\n * weakens security, we suggest using it only when modifying a password.</p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateMinLength(form) {\r\n var isValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\");\r\n\r\n\r\n oMinLength = eval('new ' + formName.value + '_minlength()');\r\n\r\n for (x in oMinLength) {\r\n var field = form[oMinLength[x][0]];\r\n\r\n if ((field.type == 'hidden' ||\r\n field.type == 'text' ||\r\n field.type == 'password' ||\r\n field.type == 'textarea') &&\r\n field.disabled == false) {\r\n\r\n var iMin = parseInt(oMinLength[x][2](\"minlength\"));\r\n if ((trim(field.value).length > 0) && (field.value.length < iMin)) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oMinLength[x][1];\r\n isValid = false;\r\n }\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return isValid;\r\n }\r\n\r\n /*$RCSfile: validateUtilities.js,v $ $Revision: 1.2 $ $Date: 2004/03/28 16:53:21 $ */\r\n\r\n /**\r\n * This is a place holder for common utilities used across the javascript validation\r\n *\r\n **/\r\n\r\n\r\n /*$RCSfile: validateFloatRange.js,v $ $Revision: 1.9 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields are in a valid float range.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateFloatRange(form) {\r\n var isValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\"); \r\n\r\n oRange = eval('new ' + formName.value + '_floatRange()');\r\n for (x in oRange) {\r\n var field = form[oRange[x][0]];\r\n \r\n if ((field.type == 'hidden' ||\r\n field.type == 'text' || field.type == 'textarea') &&\r\n (field.value.length > 0) &&\r\n field.disabled == false) {\r\n \r\n var fMin = parseFloat(oRange[x][2](\"min\"));\r\n var fMax = parseFloat(oRange[x][2](\"max\"));\r\n var fValue = parseFloat(field.value);\r\n if (!(fValue >= fMin && fValue <= fMax)) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oRange[x][1];\r\n isValid = false;\r\n }\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return isValid;\r\n }\r\n\r\n\r\n /*$RCSfile: validateIntRange.js,v $ $Revision: 1.10 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields is in a valid integer range.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateIntRange(form) {\r\n var isValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\"); \r\n\r\n oRange = eval('new ' + formName.value + '_intRange()'); \r\n for (x in oRange) {\r\n var field = form[oRange[x][0]];\r\n if (field.disabled == false) {\r\n var value = '';\r\n if (field.type == 'hidden' ||\r\n field.type == 'text' || field.type == 'textarea' ||\r\n field.type == 'radio' ) {\r\n value = field.value;\r\n }\r\n if (field.type == 'select-one') {\r\n var si = field.selectedIndex;\r\n if (si >= 0) {\r\n value = field.options[si].value;\r\n }\r\n }\r\n if (value.length > 0) {\r\n var iMin = parseInt(oRange[x][2](\"min\"));\r\n var iMax = parseInt(oRange[x][2](\"max\"));\r\n var iValue = parseInt(value);\r\n if (!(iValue >= iMin && iValue <= iMax)) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oRange[x][1];\r\n isValid = false;\r\n }\r\n }\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return isValid;\r\n }\r\n\r\n\r\n /*$RCSfile: validateInteger.js,v $ $Revision: 1.9 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields are a valid integer.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n * 功能:校验是否是整形的输入\r\n */\r\n\r\nfunction validateInteger(field) {\r\n\tvar bValid = true;\r\n if (field.type == 'text' ||\r\n \tfield.type == 'textarea' ||\r\n\t\tfield.type == 'select-one' ||\r\n\t\tfield.type == 'radio') {\r\n\t\tvar value = '';\r\n\t\tif (field.type == \"select-one\") {\r\n\t\t\tvar si = field.selectedIndex;\r\n\t\t if (si >= 0) {\r\n\t\t\t value = field.options[si].value;\r\n\t\t }\r\n\t\t} else {\r\n\t\t\tvalue = field.value;\r\n\t\t}\r\n\t\tif (value.length > 0) {\r\n\t\t\tif (!isAllDigits(value)) {\r\n\t\t\t\tbValid = false;\r\n\t\t\t\tfield.focus();\t\t\t\t\t \r\n\t\t\t} else {\r\n\t\t\t\tvar iValue = parseInt(value);\r\n\t\t\t\tif (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {\r\n\t\t\t\t\tif (i == 0) {\r\n\t\t\t\t\t\tfocusField = field;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbValid = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn bValid;\r\n}\r\n\r\n function isAllDigits(argvalue) {\r\n argvalue = argvalue.toString();\r\n var validChars = \"0123456789\";\r\n var startFrom = 0;\r\n if (argvalue.substring(0, 2) == \"0x\") {\r\n validChars = \"0123456789abcdefABCDEF\";\r\n startFrom = 2;\r\n } else if (argvalue.charAt(0) == \"0\") {\r\n validChars = \"01234567\";\r\n startFrom = 1;\r\n } else if (argvalue.charAt(0) == \"-\") {\r\n startFrom = 1;\r\n }\r\n\r\n for (var n = startFrom; n < argvalue.length; n++) {\r\n if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n /*$RCSfile: validateMask.js,v $ $Revision: 1.10 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields are a valid using a regular expression.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateMask(form) {\r\n var isValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\"); \r\n\r\n oMasked = eval('new ' + formName.value + '_mask()'); \r\n for (x in oMasked) {\r\n var field = form[oMasked[x][0]];\r\n\r\n if ((field.type == 'hidden' ||\r\n field.type == 'text' ||\r\n field.type == 'textarea' ||\r\n field.type == 'file') &&\r\n (field.value.length > 0) &&\r\n field.disabled == false) {\r\n\r\n if (!matchPattern(field.value, oMasked[x][2](\"mask\"))) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oMasked[x][1];\r\n isValid = false;\r\n }\r\n }\r\n }\r\n\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return isValid;\r\n }\r\n\r\n function matchPattern(value, mask) {\r\n return mask.exec(value);\r\n }\r\n\r\n\r\n /*$RCSfile: validateDate.js,v $ $Revision: 1.10 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields are a valid date.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateDate(form) {\r\n var bValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\"); \r\n\r\n oDate = eval('new ' + formName.value + '_DateValidations()');\r\n\r\n for (x in oDate) {\r\n var field = form[oDate[x][0]];\r\n var value = field.value;\r\n var datePattern = oDate[x][2](\"datePatternStrict\");\r\n // try loose pattern\r\n if (datePattern == null)\r\n datePattern = oDate[x][2](\"datePattern\");\r\n if ((field.type == 'hidden' ||\r\n field.type == 'text' ||\r\n field.type == 'textarea') &&\r\n (value.length > 0) && (datePattern.length > 0) &&\r\n field.disabled == false) {\r\n var MONTH = \"MM\";\r\n var DAY = \"dd\";\r\n var YEAR = \"yyyy\";\r\n var orderMonth = datePattern.indexOf(MONTH);\r\n var orderDay = datePattern.indexOf(DAY);\r\n var orderYear = datePattern.indexOf(YEAR);\r\n if ((orderDay < orderYear && orderDay > orderMonth)) {\r\n var iDelim1 = orderMonth + MONTH.length;\r\n var iDelim2 = orderDay + DAY.length;\r\n var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);\r\n var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);\r\n if (iDelim1 == orderDay && iDelim2 == orderYear) {\r\n dateRegexp = new RegExp(\"^(\\\\d{2})(\\\\d{2})(\\\\d{4})$\");\r\n } else if (iDelim1 == orderDay) {\r\n dateRegexp = new RegExp(\"^(\\\\d{2})(\\\\d{2})[\" + delim2 + \"](\\\\d{4})$\");\r\n } else if (iDelim2 == orderYear) {\r\n dateRegexp = new RegExp(\"^(\\\\d{2})[\" + delim1 + \"](\\\\d{2})(\\\\d{4})$\");\r\n } else {\r\n dateRegexp = new RegExp(\"^(\\\\d{2})[\" + delim1 + \"](\\\\d{2})[\" + delim2 + \"](\\\\d{4})$\");\r\n }\r\n var matched = dateRegexp.exec(value);\r\n if(matched != null) {\r\n if (!isValidDate(matched[2], matched[1], matched[3])) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oDate[x][1];\r\n bValid = false;\r\n }\r\n } else {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oDate[x][1];\r\n bValid = false;\r\n }\r\n } else if ((orderMonth < orderYear && orderMonth > orderDay)) {\r\n var iDelim1 = orderDay + DAY.length;\r\n var iDelim2 = orderMonth + MONTH.length;\r\n var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);\r\n var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);\r\n if (iDelim1 == orderMonth && iDelim2 == orderYear) {\r\n dateRegexp = new RegExp(\"^(\\\\d{2})(\\\\d{2})(\\\\d{4})$\");\r\n } else if (iDelim1 == orderMonth) {\r\n dateRegexp = new RegExp(\"^(\\\\d{2})(\\\\d{2})[\" + delim2 + \"](\\\\d{4})$\");\r\n } else if (iDelim2 == orderYear) {\r\n dateRegexp = new RegExp(\"^(\\\\d{2})[\" + delim1 + \"](\\\\d{2})(\\\\d{4})$\");\r\n } else {\r\n dateRegexp = new RegExp(\"^(\\\\d{2})[\" + delim1 + \"](\\\\d{2})[\" + delim2 + \"](\\\\d{4})$\");\r\n }\r\n var matched = dateRegexp.exec(value);\r\n if(matched != null) {\r\n if (!isValidDate(matched[1], matched[2], matched[3])) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oDate[x][1];\r\n bValid = false;\r\n }\r\n } else {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oDate[x][1];\r\n bValid = false;\r\n }\r\n } else if ((orderMonth > orderYear && orderMonth < orderDay)) {\r\n var iDelim1 = orderYear + YEAR.length;\r\n var iDelim2 = orderMonth + MONTH.length;\r\n var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);\r\n var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);\r\n if (iDelim1 == orderMonth && iDelim2 == orderDay) {\r\n dateRegexp = new RegExp(\"^(\\\\d{4})(\\\\d{2})(\\\\d{2})$\");\r\n } else if (iDelim1 == orderMonth) {\r\n dateRegexp = new RegExp(\"^(\\\\d{4})(\\\\d{2})[\" + delim2 + \"](\\\\d{2})$\");\r\n } else if (iDelim2 == orderDay) {\r\n dateRegexp = new RegExp(\"^(\\\\d{4})[\" + delim1 + \"](\\\\d{2})(\\\\d{2})$\");\r\n } else {\r\n dateRegexp = new RegExp(\"^(\\\\d{4})[\" + delim1 + \"](\\\\d{2})[\" + delim2 + \"](\\\\d{2})$\");\r\n }\r\n var matched = dateRegexp.exec(value);\r\n if(matched != null) {\r\n if (!isValidDate(matched[3], matched[2], matched[1])) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oDate[x][1];\r\n bValid = false;\r\n }\r\n } else {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oDate[x][1];\r\n bValid = false;\r\n }\r\n } else {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oDate[x][1];\r\n bValid = false;\r\n }\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return bValid;\r\n }\r\n \r\n function isValidDate(day, month, year) {\r\n if (month < 1 || month > 12) {\r\n return false;\r\n }\r\n if (day < 1 || day > 31) {\r\n return false;\r\n }\r\n if ((month == 4 || month == 6 || month == 9 || month == 11) &&\r\n (day == 31)) {\r\n return false;\r\n }\r\n if (month == 2) {\r\n var leap = (year % 4 == 0 &&\r\n (year % 100 != 0 || year % 400 == 0));\r\n if (day>29 || (day == 29 && !leap)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n\r\n /*$RCSfile: validateFloat.js,v $ $Revision: 1.11 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields are a valid float.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateFloat(form) {\r\n var bValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\");\r\n\r\n oFloat = eval('new ' + formName.value + '_FloatValidations()');\r\n for (x in oFloat) {\r\n var field = form[oFloat[x][0]];\r\n \r\n if ((field.type == 'hidden' ||\r\n field.type == 'text' ||\r\n field.type == 'textarea' ||\r\n field.type == 'select-one' ||\r\n field.type == 'radio') &&\r\n field.disabled == false) {\r\n \r\n var value = '';\r\n // get field's value\r\n if (field.type == \"select-one\") {\r\n var si = field.selectedIndex;\r\n if (si >= 0) {\r\n value = field.options[si].value;\r\n }\r\n } else {\r\n value = field.value;\r\n }\r\n \r\n if (value.length > 0) {\r\n // remove '.' before checking digits\r\n var tempArray = value.split('.');\r\n //Strip off leading '0'\r\n var zeroIndex = 0;\r\n var joinedString= tempArray.join('');\r\n while (joinedString.charAt(zeroIndex) == '0') {\r\n zeroIndex++;\r\n }\r\n var noZeroString = joinedString.substring(zeroIndex,joinedString.length);\r\n\r\n if (!isAllDigits(noZeroString)) {\r\n bValid = false;\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oFloat[x][1];\r\n\r\n } else {\r\n var iValue = parseFloat(value);\r\n if (isNaN(iValue)) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oFloat[x][1];\r\n bValid = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return bValid;\r\n }\r\n\r\n\r\n /*$RCSfile: validateCreditCard.js,v $ $Revision: 1.8 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields are a valid creditcard number based on Luhn checksum.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateCreditCard(form) {\r\n var bValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\");\r\n\r\n oCreditCard = eval('new ' + formName.value + '_creditCard()');\r\n\r\n for (x in oCreditCard) {\r\n if ((form[oCreditCard[x][0]].type == 'text' ||\r\n form[oCreditCard[x][0]].type == 'textarea') &&\r\n (form[oCreditCard[x][0]].value.length > 0) &&\r\n form[oCreditCard[x][0]].disabled == false) {\r\n if (!luhnCheck(form[oCreditCard[x][0]].value)) {\r\n if (i == 0) {\r\n focusField = form[oCreditCard[x][0]];\r\n }\r\n fields[i++] = oCreditCard[x][1];\r\n bValid = false;\r\n }\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return bValid;\r\n }\r\n\r\n /**\r\n * Checks whether a given credit card number has a valid Luhn checksum.\r\n * This allows you to spot most randomly made-up or garbled credit card numbers immediately.\r\n * Reference: http://www.speech.cs.cmu.edu/~sburke/pub/luhn_lib.html\r\n */\r\n function luhnCheck(cardNumber) {\r\n if (isLuhnNum(cardNumber)) {\r\n var no_digit = cardNumber.length;\r\n var oddoeven = no_digit & 1;\r\n var sum = 0;\r\n for (var count = 0; count < no_digit; count++) {\r\n var digit = parseInt(cardNumber.charAt(count));\r\n if (!((count & 1) ^ oddoeven)) {\r\n digit *= 2;\r\n if (digit > 9) digit -= 9;\r\n };\r\n sum += digit;\r\n };\r\n if (sum == 0) return false;\r\n if (sum % 10 == 0) return true;\r\n };\r\n return false;\r\n }\r\n\r\n function isLuhnNum(argvalue) {\r\n argvalue = argvalue.toString();\r\n if (argvalue.length == 0) {\r\n return false;\r\n }\r\n for (var n = 0; n < argvalue.length; n++) {\r\n if ((argvalue.substring(n, n+1) < \"0\") ||\r\n (argvalue.substring(n,n+1) > \"9\")) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n\r\n /*$RCSfile: validateShort.js,v $ $Revision: 1.9 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields are a valid short.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateShort(form) {\r\n var bValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\");\r\n\r\n oShort = eval('new ' + formName.value + '_ShortValidations()');\r\n\r\n for (x in oShort) {\r\n var field = form[oShort[x][0]];\r\n\r\n if ((field.type == 'hidden' ||\r\n field.type == 'text' ||\r\n field.type == 'textarea' ||\r\n field.type == 'select-one' ||\r\n field.type == 'radio') &&\r\n field.disabled == false) {\r\n\r\n var value = '';\r\n // get field's value\r\n if (field.type == \"select-one\") {\r\n var si = field.selectedIndex;\r\n if (si >= 0) {\r\n value = field.options[si].value;\r\n }\r\n } else {\r\n value = field.value;\r\n }\r\n\r\n if (value.length > 0) {\r\n if (!isAllDigits(value)) {\r\n bValid = false;\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oShort[x][1];\r\n\r\n } else {\r\n\r\n var iValue = parseInt(value);\r\n if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oShort[x][1];\r\n bValid = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return bValid;\r\n }\r\n\r\n\r\n /*$RCSfile: validateMaxLength.js,v $ $Revision: 1.10 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * A field is considered valid if less than the specified maximum.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * <strong>Caution:</strong> Using <code>validateMaxLength</code> on a password field in a \r\n * login page gives unnecessary information away to hackers. While it only slightly\r\n * weakens security, we suggest using it only when modifying a password.</p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateMaxLength(form) {\r\n var isValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\"); \r\n\r\n oMaxLength = eval('new ' + formName.value + '_maxlength()'); \r\n for (x in oMaxLength) {\r\n var field = form[oMaxLength[x][0]];\r\n\r\n if ((field.type == 'hidden' ||\r\n field.type == 'text' ||\r\n field.type == 'password' ||\r\n field.type == 'textarea') &&\r\n field.disabled == false) {\r\n\r\n var iMax = parseInt(oMaxLength[x][2](\"maxlength\"));\r\n var fieldValue = encodeURIComponent(field.value);\r\n fieldValue = fieldValue.replace(/%\\w\\w/gi, '1');\r\n if (fieldValue.length > iMax) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oMaxLength[x][1];\r\n isValid = false;\r\n }\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return isValid;\r\n }\r\n\r\n\r\n /*$RCSfile: validateEmail.js,v $ $Revision: 1.9 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields are a valid email address.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateEmail(form) {\r\n var bValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\");\r\n\r\n\r\n oEmail = eval('new ' + formName.value + '_email()');\r\n\r\n for (x in oEmail) {\r\n var field = form[oEmail[x][0]];\r\n if ((field.type == 'hidden' || \r\n field.type == 'text' ||\r\n field.type == 'textarea') &&\r\n (field.value.length > 0) &&\r\n field.disabled == false) {\r\n if (!checkEmail(field.value)) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oEmail[x][1];\r\n bValid = false;\r\n }\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return bValid;\r\n }\r\n\r\n /**\r\n * Reference: Sandeep V. Tamhankar ([email protected]),\r\n * http://javascript.internet.com\r\n */\r\n function checkEmail(emailStr) {\r\n if (emailStr.length == 0) {\r\n return true;\r\n }\r\n var emailPat=/^(.+)@(.+)$/;\r\n var specialChars=\"\\\\(\\\\)<>@,;:\\\\\\\\\\\\\\\"\\\\.\\\\[\\\\]\";\r\n var validChars=\"\\[^\\\\s\" + specialChars + \"\\]\";\r\n var quotedUser=\"(\\\"[^\\\"]*\\\")\";\r\n var ipDomainPat=/^(\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})$/;\r\n var atom=validChars + '+';\r\n var word=\"(\" + atom + \"|\" + quotedUser + \")\";\r\n var userPat=new RegExp(\"^\" + word + \"(\\\\.\" + word + \")*$\");\r\n var domainPat=new RegExp(\"^\" + atom + \"(\\\\.\" + atom + \")*$\");\r\n var matchArray=emailStr.match(emailPat);\r\n if (matchArray == null) {\r\n return false;\r\n }\r\n var user=matchArray[1];\r\n var domain=matchArray[2];\r\n if (user.match(userPat) == null) {\r\n return false;\r\n }\r\n var IPArray = domain.match(ipDomainPat);\r\n if (IPArray != null) {\r\n for (var i = 1; i <= 4; i++) {\r\n if (IPArray[i] > 255) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n var domainArray=domain.match(domainPat);\r\n if (domainArray == null) {\r\n return false;\r\n }\r\n var atomPat=new RegExp(atom,\"g\");\r\n var domArr=domain.match(atomPat);\r\n var len=domArr.length;\r\n if ((domArr[domArr.length-1].length < 2) ||\r\n (domArr[domArr.length-1].length > 3)) {\r\n return false;\r\n }\r\n if (len < 2) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n \r\n\r\n\r\n /*$RCSfile: validateByte.js,v $ $Revision: 1.9 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields are a valid byte.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n */\r\n function validateByte(form) {\r\n var bValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\"); \r\n oByte = eval('new ' + formName.value + '_ByteValidations()');\r\n\r\n for (x in oByte) {\r\n var field = form[oByte[x][0]];\r\n\r\n if ((field.type == 'hidden' ||\r\n field.type == 'text' ||\r\n field.type == 'textarea' ||\r\n field.type == 'select-one' ||\r\n field.type == 'radio') &&\r\n field.disabled == false) {\r\n\r\n var value = '';\r\n // get field's value\r\n if (field.type == \"select-one\") {\r\n var si = field.selectedIndex;\r\n if (si >= 0) {\r\n value = field.options[si].value;\r\n }\r\n } else {\r\n value = field.value;\r\n }\r\n\r\n if (value.length > 0) {\r\n if (!isAllDigits(value)) {\r\n bValid = false;\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oByte[x][1];\r\n\r\n } else {\r\n\r\n var iValue = parseInt(value);\r\n if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oByte[x][1];\r\n bValid = false;\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return bValid;\r\n }\r\n\r\n\r\n /*$RCSfile: validateRequired.js,v $ $Revision: 1.13 $ $Date: 2004/03/28 16:53:21 $ */\r\n /**\r\n * Check to see if fields must contain a value.\r\n * Fields are not checked if they are disabled.\r\n * <p>\r\n * @param form The form validation is taking place on.\r\n */\r\n\r\n function validateRequired(form) {\r\n var isValid = true;\r\n var focusField = null;\r\n var i = 0;\r\n var fields = new Array();\r\n var formName = form.getAttributeNode(\"name\");\r\n\r\n oRequired = eval('new ' + formName.value + '_required()');\r\n\r\n for (x in oRequired) {\r\n var field = form[oRequired[x][0]];\r\n\r\n if ((field.type == 'hidden' ||\r\n field.type == 'text' ||\r\n field.type == 'textarea' ||\r\n field.type == 'file' ||\r\n field.type == 'checkbox' ||\r\n field.type == 'select-one' ||\r\n field.type == 'password') &&\r\n field.disabled == false) {\r\n\r\n var value = '';\r\n // get field's value\r\n if (field.type == \"select-one\") {\r\n var si = field.selectedIndex;\r\n if (si >= 0) {\r\n value = field.options[si].value;\r\n }\r\n } else if (field.type == 'checkbox') {\r\n if (field.checked) {\r\n value = field.value;\r\n }\r\n } else {\r\n value = field.value;\r\n }\r\n\r\n if (trim(value).length == 0) {\r\n\r\n if (i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oRequired[x][1];\r\n isValid = false;\r\n }\r\n } else if (field.type == \"select-multiple\") { \r\n var numOptions = field.options.length;\r\n lastSelected=-1;\r\n for(loop=numOptions-1;loop>=0;loop--) {\r\n if(field.options[loop].selected) {\r\n lastSelected = loop;\r\n value = field.options[loop].value;\r\n break;\r\n }\r\n }\r\n if(lastSelected < 0 || trim(value).length == 0) {\r\n if(i == 0) {\r\n focusField = field;\r\n }\r\n fields[i++] = oRequired[x][1];\r\n isValid=false;\r\n }\r\n } else if ((field.length > 0) && (field[0].type == 'radio' || field[0].type == 'checkbox')) {\r\n isChecked=-1;\r\n for (loop=0;loop < field.length;loop++) {\r\n if (field[loop].checked) {\r\n isChecked=loop;\r\n break; // only one needs to be checked\r\n }\r\n }\r\n if (isChecked < 0) {\r\n if (i == 0) {\r\n focusField = field[0];\r\n }\r\n fields[i++] = oRequired[x][1];\r\n isValid=false;\r\n }\r\n }\r\n }\r\n if (fields.length > 0) {\r\n try{\r\n focusField.focus();\r\n }catch(e){}\r\n alert(fields.join('\\n'));\r\n }\r\n return isValid;\r\n }\r\n \r\n // Trim whitespace from left and right sides of s.\r\n function trim(s) {\r\n return s.replace( /^\\s*/, \"\" ).replace( /\\s*$/, \"\" );\r\n }\r\n\r\n\r\n\r\nfunction Validate_Number(value){\r\n var re = /[^\\d\\.\\-]/;\r\n if(re.test(value))\r\n return false;\r\n if(value.lastIndexOf(\"-\")>0)\r\n return false;\r\n if(value.split(\".\").length>2)\r\n return false;\r\n return true;\r\n}\r\nfunction Validate_Integer(value){\r\n return isAllDigits(value) && !isNaN(parseInt(value));\r\n}\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nNew_Com_RegisterFile(\"ckresize_lang.jsp\", \"ckeditor/\");\r\nCom_RegisterFile(\"ckresize_lang.jsp\"); \r\n\tvar Ckresize_lang = { \r\n\t\tfirst:'已经是第一张图片' ,\r\n\t\ttip:'已是最后一张图片,自动为您跳转回第一张图片' ,\r\n\t\tclose:'关闭',\r\n\t\tsize:'实际大小'\r\n\t};\r\n\r\n</script>\r\n\r\n<!-- 是否开启合并加载js模式 -->\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\t\r\n\t\r\n\t\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\tseajs.use([ 'lui/parser', 'lui/jquery', 'lui/dialog', 'theme!common', 'theme!icon','theme!iconfont' ],function(parser, $) {\r\n\t\t\t\t$(document).ready(function() {\r\n\t\t\t\t\tparser.parse();\r\n\t\t\t\t});\r\n\t\t\t}); \r\n\t\t</script>\r\n\t\r\n\r\n\r\n\r\n<link rel=\"shortcut icon\" href=\"/favicon.ico\">\r\n\r\n\r\n<script>\r\n //ä¼ é
æ ¡éªå¨ï¼ä¸»ææ¡£æäº¤æ¶æ£æ¥æ¯å¦æä¼ é
ä»»å¡ï¼æå黿¢æäº¤\r\n Com_Parameter.event[\"submit\"].unshift(function () {\r\n var url = \"http://oa.chasesun.cn/resource/login/login_chasesun/login.jsp\";\r\n var modelId = \"\";\r\n var requestModule = [\"/km/review/\", \"/km/imissive/\"];\r\n var toCheck = false;\r\n var toSubmit = true;\r\n for (var i = 0; i < requestModule.length; i++) {\r\n if (url.indexOf(requestModule[i]) != -1) {\r\n toCheck = true;\r\n break;\r\n }\r\n }\r\n if (toCheck) {\r\n $.ajax({\r\n async: false, cache: false, contentType: 'json', data: {modelId: modelId}, url: '/sys/circulation/sys_circulation_main/sysCirculationMain.do?method=doingCirculation',\r\n success: function (result, status, xhr) {\r\n if (result && result.doingCirculation) {\r\n toSubmit = false;\r\n alert('当前文档正在执行传阅,您的操作将会影响传阅过程,请稍后再提交!');\r\n }\r\n },\r\n error: function (xhr, status, error) {\r\n toSubmit = false;\r\n console.log(error);\r\n alert('当前文档查询是否有在执行传阅出错');\r\n }\r\n });\r\n }\r\n return toSubmit;\r\n });\r\n</script>\r\n\r\n <link href=\"/resource/login/login_chasesun//font/iconfont.css\" rel=\"stylesheet\" type=\"text/css\" />\r\n <link type=\"text/css\" rel=\"stylesheet\" href=\"/resource/login/login_chasesun/css/login.css?s_cache=1563012259522\" />\r\n <link type=\"text/css\" rel=\"stylesheet\" href=\"/resource/login/login_chasesun/css/animate.css?s_cache=1758655705339\" />\r\n <script src=\"/resource/login/login_chasesun/js/jquery.js\"></script>\r\n <script src=\"/resource/login/login_chasesun/js/jquery.fullscreenr.js\"></script>\r\n <script src=\"/resource/login/login_chasesun/js/custom.js\"></script>\r\n \t\r\n<script type=\"text/javascript\">\r\n\tfunction checkLocation(){\r\n\t\tif(top==window){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tdomain.call(window.top,\"login\");\r\n\t}\r\n\ttry{\r\n\t\tcheckLocation();\r\n\t}catch(e){window.console(e);}\r\n</script>\r\n<title>登录系统</title>\r\n</head>\r\n<body>\r\n \r\n <script>\r\n var templatePath = '/resource/login/login_chasesun/';\r\n </script>\r\n <!-- 背景图片 Starts -->\r\n <div class=\"login-background-img\"><img id=\"login-bgImg\" /></div>\r\n <script type=\"text/javascript\">\r\n // 您必须指定你的背景图片的大小\r\n var FullscreenrOptions = { width: 1920, height: 1080, bgID: '#login-bgImg' };\r\n // 此处将会激活全屏背景\r\n jQuery.fn.fullscreenr(FullscreenrOptions);\r\n </script>\r\n <!-- 背景图片 Ends -->\r\n <!-- 多语言 starts-->\r\n <div class=\"login_header\">\r\n <div class=\"login_top_bar\">\r\n <ul>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n <!-- 多语言 ends-->\r\n <div class=\"maincon\">\r\n <table class=\"login_iframe_box\">\r\n <tr>\r\n <td>\r\n <!-- 登录框 开始 -->\r\n <div class=\"login_iframe\">\r\n <!-- LOGO路径 starts-->\r\n <span class=\"logo\">\r\n <img src=\"/resource/login/login_chasesun/images/logo.png\" />\r\n </span>\r\n <!-- LOGO路径 ends-->\r\n <div class=\"login_content\"> \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<script>\r\nCom_IncludeFile(\"security.js\");\r\n</script>\r\n\r\n<script type=\"text/javascript\">\r\nfunction kmss_onsubmit(){\r\n\tvar loginInput = \"请输入用户名和密码\";\r\n\tcleanerErrorMsg();\r\n\tif(document.forms[0].j_username.value==\"\"){\r\n\t\tshowErrorMsg(loginInput);\r\n\t\tdocument.forms[0].j_username.focus();\r\n\t\treturn false;\r\n\t}\r\n\tif(document.forms[0].j_password.value==\"\"){\r\n\t\tshowErrorMsg(loginInput);\r\n\t\tdocument.forms[0].j_password.focus();\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tdocument.getElementsByName(\"btn_submit\")[0].disabled = true;\t \r\n\tencryptPassword();\r\n\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\treturn true;\r\n}\r\n//显示错误信息\r\nfunction showErrorMsg(msg) {\r\n\tvar info = \"系统提示:\";\r\n\t$(\".lui_login_message_div\").addClass(\"tip_message\").html(info + msg);\r\n}\r\n//清除错误信息\r\nfunction cleanerErrorMsg() {\r\n\t$(\".lui_login_message_div\").removeClass('tip_message').html(\"\");\r\n}\r\nseajs.use(['lui/jquery'], function($) {\r\n\twindow.onload = function(){\r\n\t\tvar j_username = document.getElementsByName('j_username')[0].value;\r\n\t\tif(j_username==\"\"){ \r\n\t\t\tdocument.getElementsByName('j_username')[0].focus();\r\n\t\t}\r\n\t\telse{\r\n\t\t\tdocument.getElementsByName('j_password')[0].focus();\r\n\t\t}\r\n\t\t\r\n\t\t$(document).keypress(function(e) {\r\n\t\t\t//if (e.which == 13)\r\n\t\t\t//\t$(\"form\").submit();\r\n\t\t});\r\n\t\t\r\n\t\t// ExceptionTranslationFilter对SPRING_SECURITY_TARGET_URL 进行未登录url保持 请求中的hash并不会传递到服务端,故只能前端处理\r\n\t\t\r\n\t\tvar urlObj = $('input[name=\"j_redirectto\"]');\r\n\t\tvar hash = location.hash;\r\n\t\tif(hash)\r\n\t\t\turlObj.val(urlObj.val() + hash);\r\n\t\t\r\n\t\t\r\n\t}\r\n});\r\nfunction encryptPassword(){ \r\n\tdocument.forms[0].j_password.value = desEncrypt(document.forms[0].j_password.value);\r\n\t\r\n\t\r\n}\r\n</script>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\t<div class=\"header_title\">\r\n\t\t\t登录系统\r\n\t\t\t<span class=\"title_right\">OA办公平台</span>\r\n\t\t</div>\r\n\t\r\n\t\r\n\r\n<div class=\"form_content\">\r\n\t<div class=\"form_content_item form_account\">\r\n\t\t<form action=\"j_acegi_security_check\" method=\"POST\" onsubmit=\"return kmss_onsubmit();\" autocomplete=\"off\">\r\n\t\t\t<table class=\"lui_login_form_table\">\r\n\t\t\t\t \r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td colspan=\"2\" class=\"lui_login_message_td\">\r\n\t\t\t\t\t\t<div class=\"lui_login_message_div\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td class=\"lui_login_input_title\">用户名:</td>\r\n\t\t\t\t\t<td class=\"lui_login_input_td\">\r\n\t\t\t\t\t\t<div class=\"lui_login_input_div\">\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<input type='text' name='j_username' class=\"lui_login_input_username\" onfocus=\"this.select();\" value='' placeholder=\"用户名\" autocomplete=\"off\">\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td class=\"lui_login_input_title\">密 码:</td>\r\n\t\t\t\t\t<td class=\"lui_login_input_td\">\r\n\t\t\t\t\t\t<div class=\"lui_login_input_div\">\r\n\t\t\t\t\t\t\t<input type='password' name='j_password' class=\"lui_login_input_password\" placeholder=\"密码\" autocomplete=\"off\">\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t \t\r\n\t\t\t \t\r\n\t\t\t\t\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td class=\"lui_login_button_td\" colspan=\"2\" v-bind:class=\"{choose_hover:isLoginButtonActive}\">\r\n\t\t\t\t\t\t<a href=\"javascript:document.getElementsByName('btn_submit')[0].click();\">\r\n\t\t\t\t\t<div class=\"lui_login_button_div_l\" data-color=\"loginBtn_bgColor\" @mouseenter=\"btnEnter\" @mouseleave=\"btnLeave\" v-bind:style=\"{color:loginBtn_font_color}\">\r\n\t \t<div class=\"lui_login_button_div_r\">\r\n\t \t<div class=\"lui_login_button_div_c\">\r\n\t \t\t登录\r\n\t \t</div>\r\n\t </div>\r\n\t </div>\r\n \t </a>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td colspan=\"2\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\t\r\n\t\t\t<div class=\"lui_login_form_opt\">\r\n\t\t\t\t\t\r\n\t\t\t \r\n\t\t\t</div>\t\r\n\t\t\t\r\n\t\t\t<input type=hidden name=\"j_redirectto\" value=\"\">\r\n\t\t\t<input type=submit style=\"border: 0px; width: 0px; height: 0px; background: none;\" name=\"btn_submit\">\r\n\t\t</form>\r\n\t</div>\r\n\t\r\n</div>\r\n<div class=\"form_bottom\">\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t<div id=\"third_login_form\" class=\"third_login_form\">\r\n\t\t<div class=\"third_login_header\">\r\n\t\t <!-- 其他登录方式 -->\r\n\t\t\t<span>第三方登录</span>\r\n\t\t</div>\r\n\t\t<ul class='third_login_list'>\r\n\t\t\r\n\t\t\t<li class=\"third_login_item\">\r\n\t\t\t\t<a href=\"https://oapi.dingtalk.com/connect/qrconnect?appid=dingrw4dewyk7v0fa0cx&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=http%3A%2F%2Foa.chasesun.cn%2Fthird%2Fding%2FpcScanLogin.do%3Fmethod%3Dservice\" title=\"钉钉扫码登录\">\r\n\t\t\t\t <div class=\"third_login_item_icon third_login_icon_ding\"></div>\r\n\t\t\t <div class=\"third_login_item_desc\">钉钉扫</div>\r\n\t\t\t\t</a>\r\n\t\t\t</li>\r\n\t\t\r\n\t\t</ul>\r\n\t</div>\r\n\r\n</div>\r\n </div>\r\n </div>\r\n <!-- 登录框 结束 -->\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"login_footer\">\r\n \r\n <p>Copyright © 2001-2018 版权所有</p>\r\n </div>\r\n \r\n <script type=\"text/javascript\">\r\n \r\n LUI.ready(function(){\r\n if(\"en-US\" == \"zh\") {\r\n //英文环境\r\n $('body').addClass('muilti_eng');\r\n }\r\n });\r\n\r\n // 获取随机登录图片信息,返回随机获取的图片名称\r\n function get_random_bg() {\r\n \r\n return \"single_random_login_bg1.jpg?s_cache=1758655705339\";\r\n }\r\n //添加提示\r\n $('body').append('<div class=\"tipsClass\">大写锁定已打开</div>');\r\n </script>\r\n\t\r\n</body>\r\n</html>\r\n\r\n\r\n",
"body_murmur": -986712297,
"body_sha256": "7f8585ff7c2ff5365ceff6095712874711fa8a145e27aff341bb2b7c554ea569",
"component": [
"OpenResty",
"Nginx"
],
"content_length": -1,
"favicon": {
"md5_hash": "302464c3f6207d57240649926cfc7bd4",
"murmur_hash": 831854882,
"path": "http://175.6.185.190:80/favicon.ico",
"size": 4286
},
"headers": {
"access_control_allow_origin": [
"*"
],
"cache_control": [
"no-cache"
],
"connection": [
"keep-alive"
],
"content_type": [
"text/html;charset=UTF-8"
],
"date": [
"Sat, 11 Oct 2025 19:55:25 GMT"
],
"server": [
"openresty"
],
"set_cookie": [
"route=b916bf4d3b39e6029fd403f21566f3f1; Path=/",
"JSESSIONID=F08B14F8F431A9BAEAC9FB201F764E94; Path=/; HttpOnly",
"isopen=close; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/"
],
"vary": [
"Accept-Encoding"
]
},
"protocol": "HTTP/1.1",
"redirects": [
{
"headers": {
"access_control_allow_origin": [
"*"
],
"cache_control": [
"no-cache"
],
"connection": [
"keep-alive"
],
"content_length": [
"0"
],
"date": [
"Sat, 11 Oct 2025 19:55:24 GMT"
],
"location": [
"http://175.6.185.190/resource/anonym.jsp"
],
"server": [
"openresty"
],
"set_cookie": [
"route=38a7a395734269c86ce4e83da462097d; Path=/",
"JSESSIONID=9C23BAF22FAECDA86237E253F011B960; Path=/; HttpOnly"
]
},
"location": "http://175.6.185.190/resource/anonym.jsp",
"protocol": "HTTP/1.1",
"status_code": 302,
"status_line": "302 Found"
},
{
"headers": {
"access_control_allow_origin": [
"*"
],
"cache_control": [
"no-cache"
],
"connection": [
"keep-alive"
],
"content_length": [
"0"
],
"content_type": [
"text/html;charset=UTF-8"
],
"date": [
"Sat, 11 Oct 2025 19:55:25 GMT"
],
"location": [
"http://175.6.185.190/login.jsp"
],
"server": [
"openresty"
],
"set_cookie": [
"route=8addf3e232f07e762dc0b5af180d4bcb; Path=/",
"JSESSIONID=0A5C885186DF84A4360A049879BFFCF0; Path=/; HttpOnly"
]
},
"location": "http://175.6.185.190/login.jsp",
"protocol": "HTTP/1.1",
"status_code": 302,
"status_line": "302 Found"
}
],
"request": {
"headers": {
"accept": [
"*/*"
],
"referer": [
"http://175.6.185.190/resource/anonym.jsp"
],
"user_agent": [
"Mozilla/5.0 (compatible; Odin; https://docs.getodin.com/)"
]
},
"method": "GET",
"url": {
"host": "175.6.185.190",
"path": "/login.jsp",
"scheme": "http"
}
},
"status_code": 200,
"title": "登录系统",
"transfer_encoding": [
"chunked"
]
}
},
"url": "http://175.6.185.190/",
"_meta": {
"name": "",
"desc": "",
"category": ""
},
"last_updated_at": "2025-10-15T13:38:02.757Z"
},
{
"port": 443,
"protocol": "tcp",
"name": "https",
"version": "",
"product": "openresty",
"extra_info": "",
"tunnel": "ssl",
"url": "https://175.6.185.190/",
"_meta": {
"name": "",
"desc": "",
"category": ""
},
"last_updated_at": "2025-10-15T13:01:57.036Z"
},
{
"port": 3306,
"protocol": "tcp",
"name": "mysql",
"version": "8.0.33",
"product": "MySQL",
"extra_info": "",
"tunnel": "",
"softwares": [
{
"uri": "cpe:/a:mysql:mysql:8.0.33",
"part": "a",
"vendor": "mysql",
"product": "mysql",
"version": "8\\.0\\.33",
"language": "ANY",
"edition": "ANY",
"update": "ANY"
}
],
"modules": {
"mysql": {
"capability_flags": {
"CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS": true,
"CLIENT_COMPRESS": true,
"CLIENT_CONNECT_ATTRS": true,
"CLIENT_CONNECT_WITH_DB": true,
"CLIENT_DEPRECATED_EOF": true,
"CLIENT_FOUND_ROWS": true,
"CLIENT_IGNORE_SIGPIPE": true,
"CLIENT_IGNORE_SPACE": true,
"CLIENT_INTERACTIVE": true,
"CLIENT_LOCAL_FILES": true,
"CLIENT_LONG_FLAG": true,
"CLIENT_LONG_PASSWORD": true,
"CLIENT_MULTI_RESULTS": true,
"CLIENT_MULTI_STATEMENTS": true,
"CLIENT_NO_SCHEMA": true,
"CLIENT_ODBC": true,
"CLIENT_PLUGIN_AUTH": true,
"CLIENT_PLUGIN_AUTH_LEN_ENC_CLIENT_DATA": true,
"CLIENT_PROTOCOL_41": true,
"CLIENT_PS_MULTI_RESULTS": true,
"CLIENT_RESERVED": true,
"CLIENT_SECURE_CONNECTION": true,
"CLIENT_SESSION_TRACK": true,
"CLIENT_SSL": true,
"CLIENT_TRANSACTIONS": true
},
"protocol_version": 10,
"version": "8.0.33"
},
"tls": {
"certificate": {
"extensions": {
"basic_constraints": {
"is_ca": true
}
},
"fingerprint_md5": "F7372D2F55B1608733EB4635140F9C26",
"fingerprint_sha1": "9711125F0351F3C83D49CDDAFB39048A5EC7D27E",
"fingerprint_sha256": "D312151CDB8BCD495765CD06687CE25618714384CE3E29C97C363EE45A5A6AE1",
"issuer": {
"common_name": [
"MySQL_Server_8.0.33_Auto_Generated_CA_Certificate"
]
},
"issuer_dn": "/CN=MySQL_Server_8.0.33_Auto_Generated_CA_Certificate",
"jarm": "00000000000000000000000000000000000000000000000000000000000000",
"redacted": false,
"revocation": {
"ocsp": {
"reason": "UNKNOWN",
"revoked": false
}
},
"serial_number": "2",
"signature": {
"algorithm": {
"name": "SHA256-RSA",
"oid": "1.2.840.113549.1.1.11"
},
"self_signed": false,
"value": "ODkzZTg1MjExZTA2MTAzYTJlMWU0ZTQyNGQ1MjQxMTcwZTQ0NzI0NzI5NjFiOWM1ZTljZWVhMWZiZDBhZGJmYzlhOGY4MjIwZjY4YjI0MzU0NDFiYmRiN2Y5NmQxOTBjZjU1OWIxYTJmZjkwMzIxYWE2NTM2NmI4ZTA5NTQzOTMzNDIyYzE4ZDA5YmVjZjM2YzNkZGNjMThjMmI4MDE2NTYxNjQ1MmMxNTA4MDliZWZhYjE5MDNiMzAxNjE2ZGE5Njk0YzNiODU5Y2Q3ZTNjOGMyNWMxYzUwZTM0MGNlYmEwMWI0M2UxNWI3OTQwOWQxYWFjN2IxYTY4ZjY0OTAwMWIxZjAyOTQwNzJhYTAyYmY3OTY2MzRiZTZjNDhjMmVkYWIwNjhkMWZhMmU4ZjM4OGFjOGJkMzFiYWNkN2Q2NWU5YmMzNTdlODVmODBkZGRjZjExYTBkMDg0MGJjNmUyZjNhN2FkOWRlZjE0YmE1OGQ2N2Y0NWNlMWQ5YTJhNDY3ZGMwODNhMTBmYjczODViY2M1Mzk4YTZmMjBiMThiYmY2MzQ0YjE4M2YwZWZlYWFhMzE4NDZjODFhZmVmNDYxZTAyMmU5MTI4Mjc4N2I2NGU3Y2ZjNDhiYzE2ZmU3MjZiMTIxOTBiYzEzMDE1YjgzZjg5OWZlZWMwY2E0NDkzYjk="
},
"subject": {
"common_name": [
"MySQL_Server_8.0.33_Auto_Generated_Server_Certificate"
]
},
"subject_alt_name": {
"dns_names": [
"MySQL_Server_8.0.33_Auto_Generated_Server_Certificate"
],
"extended_dns_names": []
},
"subject_dn": "/CN=MySQL_Server_8.0.33_Auto_Generated_Server_Certificate",
"subject_key_info": {
"_key": "rsa",
"dh": [],
"dsa": [],
"ecdsa": [],
"fingerprint_sha256": "64709a8effa17aee008632795256cca418765023e49f15e7b3669d3efd50f955",
"key_algorithm": "RSA",
"rsa": {
"exponent": 65537,
"length": 2048,
"modulus": "MHhkNDA4MDExMTdmZTAwNmQyOTVlYjk2NmQwNDJiOWUxMjY2NTg1MzAxNzE0NTA3MDdhMjFhYzkyZDE3NGNlYTAwYTZhZGU1MmFhMGYzMjkyN2RkM2QyN2VlMmVmZWIzZGZmMTM3YmNjNThiZjEzNmYwZjUyZTAzOGFiYmEzN2Y0ZmM5NTg5MTU5NzAxYTBhMDM5YTU5MDk1ZmM0NDgzNGQyZTA5Y2UyODFiZjkxMWI0ZjA5YmMwMDE3MmFkY2RjOWJiMzE4MTk1ZDBjMjAyZmE1ZjkyNzZiOTM0NTBmOTg1MmIwZDI5NjkwOGU5OWU4N2VhYjhjZGMwZDliNmExZmJlMzJjNDdlMWM3NzBmMjJlZGExZmMwYmM4MjBkNmU3OTI3MmZlZjgzMjA0OTkzMGVlMjdkNmIzMmM1OTg3MGUyOWY5NzhkYzZkMzQ1NDBlY2UzOWQ3Njc3NTJlNWYyYzE4MWU3MThlNzFlZGIzNzA1NjQzZGYzNTY5Yzk2Mjc0MDcwZWZkZTg3YzE5YzcwNzFmMTVlOGYwYWQ2ZTRiMmUwYTg1ZGQwNmM3NzU3YWM5ZTQ0ZjI3NzdmOGQ4ZDU2MzNkNTQ2ODFiNWQwYzUzY2M4ZDliMjRhMWUzZjAwMTIwODJiY2IwN2VkYjQ3YTllMTAwN2Y1YmZiMDk3ZWQ5YzA5ZA=="
}
},
"tbs_fingerprint": "89dbc461b7cdb9b0b526fdfdde902182fd9ab60e96e0cbe0698252825d5d4a46",
"validation_level": "DV",
"validity": {
"length_seconds": 315360000,
"not_after": "2033-07-18T07:46:44",
"not_before": "2023-07-21T07:46:44"
},
"version": 2
},
"fingerprint_sha256": "D312151CDB8BCD495765CD06687CE25618714384CE3E29C97C363EE45A5A6AE1",
"precert": false,
"raw": "MIIDBzCCAe+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADA8MTowOAYDVQQDDDFNeVNRTF9TZXJ2ZXJfOC4wLjMzX0F1dG9fR2VuZXJhdGVkX0NBX0NlcnRpZmljYXRlMB4XDTIzMDcyMTA3NDY0NFoXDTMzMDcxODA3NDY0NFowQDE+MDwGA1UEAww1TXlTUUxfU2VydmVyXzguMC4zM19BdXRvX0dlbmVyYXRlZF9TZXJ2ZXJfQ2VydGlmaWNhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDUCAERf+AG0pXrlm0EK54SZlhTAXFFBweiGsktF0zqAKat5Sqg8ykn3T0n7i7+s9/xN7zFi/E28PUuA4q7o39PyViRWXAaCgOaWQlfxEg00uCc4oG/kRtPCbwAFyrc3JuzGBldDCAvpfkna5NFD5hSsNKWkI6Z6H6rjNwNm2ofvjLEfhx3DyLtofwLyCDW55Jy/vgyBJkw7ifWsyxZhw4p+XjcbTRUDs4512d1Ll8sGB5xjnHts3BWQ981aclidAcO/eh8GccHHxXo8K1uSy4Khd0Gx3V6yeRPJ3f42NVjPVRoG10MU8yNmySh4/ABIIK8sH7bR6nhAH9b+wl+2cCdAgMBAAGjEDAOMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggEBAIk+hSEeBhA6Lh5OQk1SQRcORHJHKWG5xenO6h+9Ctv8mo+CIPaLJDVEG723+W0ZDPVZsaL/kDIaplNmuOCVQ5M0IsGNCb7PNsPdzBjCuAFlYWRSwVCAm++rGQOzAWFtqWlMO4Wc1+PIwlwcUONAzroBtD4Vt5QJ0arHsaaPZJABsfApQHKqAr95ZjS+bEjC7asGjR+i6POIrIvTG6zX1l6bw1foX4Dd3PEaDQhAvG4vOnrZ3vFLpY1n9Fzh2aKkZ9wIOhD7c4W8xTmKbyCxi79jRLGD8O/qqjGEbIGv70YeAi6RKCeHtk58/Ei8Fv5yaxIZC8EwFbg/iZ/uwMpEk7k=",
"tags": [
"dv",
"trusted"
]
}
},
"_meta": {
"name": "",
"desc": "",
"category": ""
},
"last_updated_at": "2025-10-16T11:10:10.197Z"
},
{
"port": 6379,
"protocol": "tcp",
"name": "redis",
"version": "",
"product": "Redis key-value store",
"extra_info": "",
"tunnel": "",
"softwares": [
{
"uri": "cpe:/a:redislabs:redis",
"part": "a",
"vendor": "redislabs",
"product": "redis",
"version": "ANY",
"language": "ANY",
"edition": "ANY",
"update": "ANY"
}
],
"modules": {
"redis": {
"arch_bits": "",
"build_id": "",
"gcc_version": "",
"git_sha1": "",
"info_response": "(Error: NOAUTH Authentication required.)",
"major": 0,
"mem_allocator": "",
"minor": 0,
"mode": "",
"nonexistent_response": "(Error: ERR unknown command 'NONEXISTENT', with args beginning with: )",
"os": "",
"patchlevel": 0,
"ping_response": "(Error: NOAUTH Authentication required.)",
"quit_response": "OK",
"total_commands_processed": 0,
"total_connections_received": 0,
"uptime_in_seconds": 0,
"used_memory": 0,
"version": ""
}
},
"_meta": {
"name": "",
"desc": "",
"category": ""
},
"last_updated_at": "2025-10-06T11:39:55.671Z"
},
{
"port": 8000,
"protocol": "tcp",
"name": "rtsp",
"version": "",
"product": "",
"extra_info": "",
"tunnel": "",
"_meta": {
"name": "",
"desc": "",
"category": ""
},
"last_updated_at": "2025-10-16T16:46:10.12Z"
},
{
"port": 15672,
"protocol": "tcp",
"name": "http",
"version": "",
"product": "Cowboy httpd",
"extra_info": "",
"tunnel": "",
"softwares": [
{
"uri": "cpe:/a:ninenines:cowboy",
"part": "a",
"vendor": "ninenines",
"product": "cowboy",
"version": "ANY",
"language": "ANY",
"edition": "ANY",
"update": "ANY"
}
],
"modules": {
"http": {
"body": "<!DOCTYPE html>\n<html>\n <head>\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n <title>RabbitMQ Management</title>\n <script src=\"js/ejs-1.0.min.js\" type=\"text/javascript\"></script>\n <script src=\"js/jquery-3.5.1.min.js\"></script>\n <script src=\"js/jquery.flot-0.8.1.min.js\" type=\"text/javascript\"></script>\n <script src=\"js/jquery.flot-0.8.1.time.min.js\" type=\"text/javascript\"></script>\n <script src=\"js/sammy-0.7.6.min.js\" type=\"text/javascript\"></script>\n <script src=\"js/json2-2016.10.28.js\" type=\"text/javascript\"></script>\n <script src=\"js/base64.js\" type=\"text/javascript\"></script>\n <script src=\"js/global.js\" type=\"text/javascript\"></script>\n <script src=\"js/main.js\" type=\"text/javascript\"></script>\n <script src=\"js/prefs.js\" type=\"text/javascript\"></script>\n <script src=\"js/formatters.js\" type=\"text/javascript\"></script>\n <script src=\"js/charts.js\" type=\"text/javascript\"></script>\n <script src=\"js/oidc-oauth/helper.js\"></script>\n <script src=\"js/oidc-oauth/oidc-client-ts.js\" type=\"text/javascript\"></script>\n <script src=\"js/oidc-oauth/bootstrap.js\"></script>\n\n <link href=\"css/main.css\" rel=\"stylesheet\" type=\"text/css\"/>\n <link href=\"favicon.ico\" rel=\"shortcut icon\" type=\"image/x-icon\"/>\n\n <script type=\"application/javascript\">\n var oauth = oauth_initialize_if_required();\n\n if (oauth.enabled) {\n if (!oauth.sp_initiated) {\n oauth.logged_in = has_auth_credentials();\n oauth.access_token = get_auth_credentials(); // DEPRECATED\n } else {\n oauth_is_logged_in().then( status => {\n if (status.loggedIn && !has_auth_credentials()) {\n oauth.logged_in = false;\n oauth_initiateLogout();\n } else {\n if (!status.loggedIn) {\n replace_content('outer', format('login_oauth', {}));\n clear_auth();\n } else {\n oauth.logged_in = true;\n oauth.access_token = status.user.access_token; // DEPRECATED\n oauth.expiryDate = new Date(status.user.expires_at * 1000); // it is epoch in seconds\n let current = new Date();\n _management_logger.debug('token expires in ', (oauth.expiryDate-current)/1000,\n 'secs at : ', oauth.expiryDate );\n oauth.user_name = status.user.profile['user_name'];\n if (!oauth.user_name || oauth.user_name == '') {\n oauth.user_name = status.user.profile['sub'];\n }\n oauth.scopes = status.user.scope;\n }\n }\n });\n }\n }\n\n </script>\n\n<!--[if lte IE 8]>\n <script src=\"js/excanvas.min.js\" type=\"text/javascript\"></script>\n <link href=\"css/evil.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<![endif]-->\n </head>\n\n <body>\n <div id=\"outer\"></div>\n <div id=\"debug\"></div>\n <div id=\"scratch\"></div>\n </body>\n</html>\n",
"body_murmur": -10116794,
"body_sha256": "92bc7f94a4dfd3b5a384954c0084258c4a21017d69064731125a9f36bd62cfdd",
"component": [
"Cowboy",
"Erlang"
],
"content_length": 3056,
"favicon": {
"md5_hash": "4aef220ab05308e3a3e8e4bec5984b2b",
"murmur_hash": -1015107330,
"path": "http://175.6.185.190:15672/favicon.ico",
"size": 102856
},
"headers": {
"content_length": [
"3056"
],
"content_security_policy": [
"script-src 'self' 'unsafe-eval' 'unsafe-inline'; object-src 'self'"
],
"content_type": [
"text/html"
],
"date": [
"Mon, 20 Oct 2025 06:24:18 GMT"
],
"etag": [
"\"1272738641\""
],
"last_modified": [
"Mon, 26 Jun 2023 08:44:03 GMT"
],
"server": [
"Cowboy"
],
"vary": [
"origin"
]
},
"protocol": "HTTP/1.1",
"request": {
"headers": {
"accept": [
"*/*"
],
"user_agent": [
"Mozilla/5.0 (compatible; Odin; https://docs.getodin.com/)"
]
},
"method": "GET",
"url": {
"host": "175.6.185.190:15672",
"path": "",
"scheme": "http"
}
},
"status_code": 200,
"title": "RabbitMQ Management"
}
},
"url": "http://175.6.185.190:15672/",
"_meta": {
"name": "",
"desc": "",
"category": ""
},
"last_updated_at": "2025-10-20T06:32:54.584Z"
}
],
"services_hash": "1fbdd464189ec8077a0081931e0da4695918404f62f94ffa6f7ea948ace30f5a",
"last_updated_at": "2025-10-20T06:32:54.584Z",
"banner": [
"http",
"mysql",
"tls",
"redis"
],
"is_vuln": false
}