diff --git a/README.md b/README.md index e1c140f..1bec6bb 100644 --- a/README.md +++ b/README.md @@ -299,6 +299,16 @@ Detail: 美国俄亥俄州哥伦布市DoD网络信息中心 数据库文件位于 `backend/qqwry.dat`,数据库更新脚本位于 `backend/qqwryUpdate.sh`,查询代码位于 `backend/qqwry.php`,数据解析服务位于 `backend/qqwryFormat/*` +Docker部署方式中,容器内已经预留了 `qqwry.dat` 的自动升级功能,每天00:00时会运行脚本拉取数据库更新。对于其他部署方式,可以配置 `crontab` 自动执行更新脚本,示例如下 + +``` +# 打开crontab任务列表 +shell> crontab -e +··· +# 添加如下一行,表示每天00:00时自动运行指定脚本 +0 0 * * * /var/www/echoIP/backend/qqwryUpdate.sh +``` + ## 许可证 MIT ©2021 [@dnomd343](https://github.com/dnomd343) [@ShevonKuan](https://github.com/ShevonKuan) diff --git a/assets/css/main.css b/assets/css/main.css index d766a12..7916d57 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -394,7 +394,8 @@ table td:not([align]) { padding: .75rem } -@media screen and (min-width:769px), +/* @media screen and (min-width:769px), */ +@media all and (orientation : landscape), print { .column.is-6 { -webkit-box-flex: 0; @@ -438,7 +439,8 @@ print { align-items: center } -@media screen and (min-width:769px), +/* @media screen and (min-width:769px), */ +@media all and (orientation : landscape), print { .columns:not(.is-desktop) { display: -webkit-box; @@ -828,11 +830,11 @@ body::-webkit-scrollbar-thumb { } } -@media only screen and (min-width:768px) and (max-width:1024px) and (orientation:portrait) { +/* @media only screen and (min-width:768px) and (max-width:1024px) and (orientation:portrait) { .columns { padding: 0 10% } -} +} */ @font-face { font-family: slick; diff --git a/assets/css/main.min.css b/assets/css/main.min.css index cf5667a..9aeaa1b 100644 --- a/assets/css/main.min.css +++ b/assets/css/main.min.css @@ -1 +1 @@ -.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}/*! bulma.io v0.9.1 | MIT License | github.com/jgthms/bulma */.button{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button,.input{-moz-appearance:none;-webkit-appearance:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:none;box-shadow:none;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:1rem;height:2.5em;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.5em - 1px);padding-left:calc(.75em - 1px);padding-right:calc(.75em - 1px);padding-top:calc(.5em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.input:active,.input:focus{outline:0}body,h3,html,p{margin:0;padding:0}h3{font-size:100%;font-weight:400}button,input{margin:0}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}table{border-collapse:collapse;border-spacing:0}td{padding:0}td:not([align]){text-align:inherit}html{background-color:#fff;font-size:14px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body,button,input{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}body{color:#4a4a4a;font-size:1em;font-weight:400;line-height:1.5}table td{vertical-align:top}table td:not([align]){text-align:inherit}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-bottom:calc(.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(.5em - 1px);text-align:center;white-space:nowrap}.button:hover{border-color:#b5b5b5;color:#363636}.button:focus{border-color:#3273dc;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(50,115,220,.25);box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button:active{border-color:#4a4a4a;color:#363636}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(255,255,255,.25);box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(10,10,10,.25);box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(245,245,245,.25);box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(54,54,54,.25);box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(0,209,178,.25);box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(50,115,220,.25);box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(50,152,220,.25);box-shadow:0 0 0 .125em rgba(50,152,220,.25)}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(72,199,116,.25);box-shadow:0 0 0 .125em rgba(72,199,116,.25)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(255,221,87,.25);box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(241,70,104,.25);box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.button.is-fullwidth{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.container{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (min-width:1216px){.container:not(.is-max-desktop){max-width:1152px}}.table{background-color:#fff;color:#363636}.table td{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td{border-bottom-width:0}.input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.input::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input:hover{border-color:#b5b5b5}.input:active,.input:focus{border-color:#3273dc;-webkit-box-shadow:0 0 0 .125em rgba(50,115,220,.25);box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.input{-webkit-box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);max-width:100%;width:100%}.is-medium.input{font-size:1.25rem}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-link:not(:hover)::after{border-color:#3273dc}.select.is-info:not(:hover)::after{border-color:#3298dc}.select.is-success:not(:hover)::after{border-color:#48c774}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-danger:not(:hover)::after{border-color:#f14668}.control{-webkit-box-sizing:border-box;box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}@media screen and (min-width:1024px){.navbar-link.is-active:not(:focus):not(:hover),a.navbar-item.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}}.column{display:block;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;padding:.75rem}@media screen and (min-width:769px),print{.column.is-6{-webkit-box-flex:0;-ms-flex:none;flex:none;width:50%}.column.is-offset-6{margin-left:50%}.column.is-12{-webkit-box-flex:0;-ms-flex:none;flex:none;width:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-multiline{-ms-flex-wrap:wrap;flex-wrap:wrap}.columns.is-vcentered{-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media screen and (min-width:769px),print{.columns:not(.is-desktop){display:-webkit-box;display:-ms-flexbox;display:flex}}.has-text-centered{text-align:center!important}.hero{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.hero.is-fullheight .hero-body{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.hero.is-fullheight .hero-body>.container{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1}.hero.is-fullheight{min-height:100vh}.hero-body{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;padding:3rem 1.5rem}p{font-family:Roboto,sans-serif}::-moz-selection{background:#8c8cf9;color:#fff}::selection{background:#8c8cf9;color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";overflow:hidden!important}div,div:active,div:focus{outline:0!important}.button:active,.button:focus{-webkit-box-shadow:none!important;box-shadow:none!important}@font-face{font-family:'Nexa Light';src:url(../fonts/text/nexa/NexaLight.woff) format("woff"),url(../fonts/text/nexa/NexaLight.ttf) format("truetype")}@font-face{font-family:'Nexa Bold';font-weight:700;src:url(../fonts/text/nexa/NexaBold.woff) format("woff"),url(../fonts/text/nexa/NexaBold.ttf) format("truetype")}::-webkit-input-placeholder{color:#cecece}::-moz-placeholder{color:#cecece}:-ms-input-placeholder{color:#cecece}:-moz-placeholder{color:#cecece}body::-webkit-scrollbar{width:10px}body::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(0,0,0,.2)}.hero.is-app-grey{background-color:#f5f6fa}.hero-body{position:relative;background-size:cover!important;background-repeat:no-repeat!important;z-index:6}.hero-body .is-subheader-caption{padding-bottom:60px}.button{-webkit-transition:all .5s;transition:all .5s}.button.button-cta{padding:22px 40px!important}.button.no-lh{line-height:0!important}.button.raised:hover{-webkit-box-shadow:0 14px 26px -12px rgba(0,0,0,.42),0 4px 23px 0 rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.2)!important;box-shadow:0 14px 26px -12px rgba(0,0,0,.42),0 4px 23px 0 rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.2)!important;opacity:.8}.button.is-bold{font-weight:500}.button:focus{border-color:#ccc}.button.is-fullwidth{display:block!important;width:100%!important;text-align:center!important}.button.primary-btn{outline:0;border-color:#8c8cf9;background-color:#8c8cf9;color:#fff;-webkit-transition:all .5s;transition:all .5s}.button.primary-btn:hover{color:#fff}.button.primary-btn.raised:hover{-webkit-box-shadow:0 14px 26px -12px rgba(140,140,249,.42),0 4px 23px 0 rgba(0,0,0,.12),0 8px 10px -5px rgba(140,140,249,.2)!important;box-shadow:0 14px 26px -12px rgba(140,140,249,.42),0 4px 23px 0 rgba(0,0,0,.12),0 8px 10px -5px rgba(140,140,249,.2)!important;opacity:.9 .5}.button.primary-btn:focus{border-color:#8c8cf9}.flex-card{position:relative;background-color:#fff;border:1px solid #fcfcfc;border-radius:.1875rem;display:inline-block;position:relative;overflow:hidden;width:100%;margin-bottom:20px;-webkit-transition:all .5s;transition:all .5s}.input{-webkit-box-shadow:none!important;box-shadow:none!important}.input{color:#878787;font-family:Roboto,sans-serif;font-size:.95rem;height:36px;-webkit-transition:all .3s;transition:all .3s;border-color:#dee2e6}.input.is-medium{height:44px}.input:hover{border-color:#d3d3d3}.input:active,.input:focus{border-color:#d6d6d6}.input:focus{-webkit-box-shadow:-1px 3px 15px 0 rgba(0,0,0,.06)!important;box-shadow:-1px 3px 15px 0 rgba(0,0,0,.06)!important}.field>label{font-family:Roboto,sans-serif;padding-bottom:4px;color:#5d6c84}.table{width:100%}.switch[type=checkbox]:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(237,237,237,.25);box-shadow:0 0 0 .125em rgba(237,237,237,.25)}.switch[type=checkbox]:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(135,135,135,.25);box-shadow:0 0 0 .125em rgba(135,135,135,.25)}.switch[type=checkbox].is-small:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(237,237,237,.25);box-shadow:0 0 0 .125em rgba(237,237,237,.25)}.switch[type=checkbox].is-small:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(135,135,135,.25);box-shadow:0 0 0 .125em rgba(135,135,135,.25)}.switch[type=checkbox].is-medium:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(237,237,237,.25);box-shadow:0 0 0 .125em rgba(237,237,237,.25)}.switch[type=checkbox].is-medium:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(135,135,135,.25);box-shadow:0 0 0 .125em rgba(135,135,135,.25)}.switch[type=checkbox].is-large:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(237,237,237,.25);box-shadow:0 0 0 .125em rgba(237,237,237,.25)}.switch[type=checkbox].is-large:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(135,135,135,.25);box-shadow:0 0 0 .125em rgba(135,135,135,.25)}.switch[type=checkbox].is-primary:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(140,140,249,.25);box-shadow:0 0 0 .125em rgba(140,140,249,.25)}.switch[type=checkbox].is-secondary:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(127,0,255,.25);box-shadow:0 0 0 .125em rgba(127,0,255,.25)}.switch[type=checkbox].is-accent:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(173,92,255,.25);box-shadow:0 0 0 .125em rgba(173,92,255,.25)}.switch[type=checkbox].is-info:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(3,155,229,.25);box-shadow:0 0 0 .125em rgba(3,155,229,.25)}.switch[type=checkbox].is-success:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(6,214,160,.25);box-shadow:0 0 0 .125em rgba(6,214,160,.25)}.switch[type=checkbox].is-warning:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(237,165,20,.25);box-shadow:0 0 0 .125em rgba(237,165,20,.25)}.switch[type=checkbox].is-danger:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(249,43,96,.25);box-shadow:0 0 0 .125em rgba(249,43,96,.25)}.hero{position:relative}.carousel-wrap .testimonials-solo-carousel .hero-form .testimonial-item .field .control .input:not(:focus),.hero-form .carousel-wrap .testimonials-solo-carousel .testimonial-item .field .control .input:not(:focus),.hero-form .flex-card .field .control .input:not(:focus),.hero-form .network-grid .network-card .field .control .input:not(:focus),.hero-form .profile-card .field .control .input:not(:focus),.hero-form .project-card .field .control .input:not(:focus),.network-grid .hero-form .network-card .field .control .input:not(:focus){border-color:#dee2e6}.mapbox-hero{position:relative}.contact-page-form{display:block;padding:40px;border:1px solid #eaecef;-webkit-box-shadow:-1px 3px 15px 0 rgba(0,0,0,.06);box-shadow:-1px 3px 15px 0 rgba(0,0,0,.06);border-radius:6px;width:100%;max-width:380px;margin:0 auto;text-align:left}.contact-page-form>h3{font-family:"Nexa Bold",sans-serif;font-size:1.4rem;color:#444f60}.contact-page-form>p{color:#8e9baf;margin-bottom:2rem}.contact-page-form .column{padding:.5rem}.contact-page-form .field>label{font-size:.95rem}.contact-page-form .field .control .input{font-size:1.1rem}@media (max-width:768px){#main-hero{max-height:100vh;background-position-x:55%!important}}@media only screen and (min-width:768px) and (max-width:1024px) and (orientation:portrait){.columns{padding:0 10%}}@font-face{font-family:slick;src:url(/assets/fonts/slick.eot);src:url(/assets/fonts/slick.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/slick.woff) format("woff"),url(/assets/fonts/slick.ttf) format("truetype"),url(/assets/fonts/slick.svg#slick) format("svg");font-weight:400;font-style:normal} \ No newline at end of file +.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}/*! bulma.io v0.9.1 | MIT License | github.com/jgthms/bulma */.button{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.button,.input{-moz-appearance:none;-webkit-appearance:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:none;box-shadow:none;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:1rem;height:2.5em;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.5em - 1px);padding-left:calc(.75em - 1px);padding-right:calc(.75em - 1px);padding-top:calc(.5em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.input:active,.input:focus{outline:0}body,h3,html,p{margin:0;padding:0}h3{font-size:100%;font-weight:400}button,input{margin:0}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}table{border-collapse:collapse;border-spacing:0}td{padding:0}td:not([align]){text-align:inherit}html{background-color:#fff;font-size:14px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body,button,input{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}body{color:#4a4a4a;font-size:1em;font-weight:400;line-height:1.5}table td{vertical-align:top}table td:not([align]){text-align:inherit}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-bottom:calc(.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(.5em - 1px);text-align:center;white-space:nowrap}.button:hover{border-color:#b5b5b5;color:#363636}.button:focus{border-color:#3273dc;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(50,115,220,.25);box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button:active{border-color:#4a4a4a;color:#363636}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(255,255,255,.25);box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(10,10,10,.25);box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(245,245,245,.25);box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(54,54,54,.25);box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(0,209,178,.25);box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(50,115,220,.25);box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(50,152,220,.25);box-shadow:0 0 0 .125em rgba(50,152,220,.25)}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(72,199,116,.25);box-shadow:0 0 0 .125em rgba(72,199,116,.25)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(255,221,87,.25);box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){-webkit-box-shadow:0 0 0 .125em rgba(241,70,104,.25);box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.button.is-fullwidth{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.container{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (min-width:1216px){.container:not(.is-max-desktop){max-width:1152px}}.table{background-color:#fff;color:#363636}.table td{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td{border-bottom-width:0}.input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.input::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input:hover{border-color:#b5b5b5}.input:active,.input:focus{border-color:#3273dc;-webkit-box-shadow:0 0 0 .125em rgba(50,115,220,.25);box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.input{-webkit-box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);max-width:100%;width:100%}.is-medium.input{font-size:1.25rem}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-link:not(:hover)::after{border-color:#3273dc}.select.is-info:not(:hover)::after{border-color:#3298dc}.select.is-success:not(:hover)::after{border-color:#48c774}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-danger:not(:hover)::after{border-color:#f14668}.control{-webkit-box-sizing:border-box;box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}@media screen and (min-width:1024px){.navbar-link.is-active:not(:focus):not(:hover),a.navbar-item.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}}.column{display:block;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;padding:.75rem}@media all and (orientation :landscape),print{.column.is-6{-webkit-box-flex:0;-ms-flex:none;flex:none;width:50%}.column.is-offset-6{margin-left:50%}.column.is-12{-webkit-box-flex:0;-ms-flex:none;flex:none;width:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-multiline{-ms-flex-wrap:wrap;flex-wrap:wrap}.columns.is-vcentered{-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media all and (orientation :landscape),print{.columns:not(.is-desktop){display:-webkit-box;display:-ms-flexbox;display:flex}}.has-text-centered{text-align:center!important}.hero{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.hero.is-fullheight .hero-body{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.hero.is-fullheight .hero-body>.container{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1}.hero.is-fullheight{min-height:100vh}.hero-body{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;padding:3rem 1.5rem}p{font-family:Roboto,sans-serif}::-moz-selection{background:#8c8cf9;color:#fff}::selection{background:#8c8cf9;color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";overflow:hidden!important}div,div:active,div:focus{outline:0!important}.button:active,.button:focus{-webkit-box-shadow:none!important;box-shadow:none!important}@font-face{font-family:'Nexa Light';src:url(../fonts/text/nexa/NexaLight.woff) format("woff"),url(../fonts/text/nexa/NexaLight.ttf) format("truetype")}@font-face{font-family:'Nexa Bold';font-weight:700;src:url(../fonts/text/nexa/NexaBold.woff) format("woff"),url(../fonts/text/nexa/NexaBold.ttf) format("truetype")}::-webkit-input-placeholder{color:#cecece}::-moz-placeholder{color:#cecece}:-ms-input-placeholder{color:#cecece}:-moz-placeholder{color:#cecece}body::-webkit-scrollbar{width:10px}body::-webkit-scrollbar-thumb{border-radius:5px;background:rgba(0,0,0,.2)}.hero.is-app-grey{background-color:#f5f6fa}.hero-body{position:relative;background-size:cover!important;background-repeat:no-repeat!important;z-index:6}.hero-body .is-subheader-caption{padding-bottom:60px}.button{-webkit-transition:all .5s;transition:all .5s}.button.button-cta{padding:22px 40px!important}.button.no-lh{line-height:0!important}.button.raised:hover{-webkit-box-shadow:0 14px 26px -12px rgba(0,0,0,.42),0 4px 23px 0 rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.2)!important;box-shadow:0 14px 26px -12px rgba(0,0,0,.42),0 4px 23px 0 rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.2)!important;opacity:.8}.button.is-bold{font-weight:500}.button:focus{border-color:#ccc}.button.is-fullwidth{display:block!important;width:100%!important;text-align:center!important}.button.primary-btn{outline:0;border-color:#8c8cf9;background-color:#8c8cf9;color:#fff;-webkit-transition:all .5s;transition:all .5s}.button.primary-btn:hover{color:#fff}.button.primary-btn.raised:hover{-webkit-box-shadow:0 14px 26px -12px rgba(140,140,249,.42),0 4px 23px 0 rgba(0,0,0,.12),0 8px 10px -5px rgba(140,140,249,.2)!important;box-shadow:0 14px 26px -12px rgba(140,140,249,.42),0 4px 23px 0 rgba(0,0,0,.12),0 8px 10px -5px rgba(140,140,249,.2)!important;opacity:.9 .5}.button.primary-btn:focus{border-color:#8c8cf9}.flex-card{position:relative;background-color:#fff;border:1px solid #fcfcfc;border-radius:.1875rem;display:inline-block;position:relative;overflow:hidden;width:100%;margin-bottom:20px;-webkit-transition:all .5s;transition:all .5s}.input{-webkit-box-shadow:none!important;box-shadow:none!important}.input{color:#878787;font-family:Roboto,sans-serif;font-size:.95rem;height:36px;-webkit-transition:all .3s;transition:all .3s;border-color:#dee2e6}.input.is-medium{height:44px}.input:hover{border-color:#d3d3d3}.input:active,.input:focus{border-color:#d6d6d6}.input:focus{-webkit-box-shadow:-1px 3px 15px 0 rgba(0,0,0,.06)!important;box-shadow:-1px 3px 15px 0 rgba(0,0,0,.06)!important}.field>label{font-family:Roboto,sans-serif;padding-bottom:4px;color:#5d6c84}.table{width:100%}.switch[type=checkbox]:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(237,237,237,.25);box-shadow:0 0 0 .125em rgba(237,237,237,.25)}.switch[type=checkbox]:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(135,135,135,.25);box-shadow:0 0 0 .125em rgba(135,135,135,.25)}.switch[type=checkbox].is-small:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(237,237,237,.25);box-shadow:0 0 0 .125em rgba(237,237,237,.25)}.switch[type=checkbox].is-small:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(135,135,135,.25);box-shadow:0 0 0 .125em rgba(135,135,135,.25)}.switch[type=checkbox].is-medium:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(237,237,237,.25);box-shadow:0 0 0 .125em rgba(237,237,237,.25)}.switch[type=checkbox].is-medium:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(135,135,135,.25);box-shadow:0 0 0 .125em rgba(135,135,135,.25)}.switch[type=checkbox].is-large:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(237,237,237,.25);box-shadow:0 0 0 .125em rgba(237,237,237,.25)}.switch[type=checkbox].is-large:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(135,135,135,.25);box-shadow:0 0 0 .125em rgba(135,135,135,.25)}.switch[type=checkbox].is-primary:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(140,140,249,.25);box-shadow:0 0 0 .125em rgba(140,140,249,.25)}.switch[type=checkbox].is-secondary:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(127,0,255,.25);box-shadow:0 0 0 .125em rgba(127,0,255,.25)}.switch[type=checkbox].is-accent:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(173,92,255,.25);box-shadow:0 0 0 .125em rgba(173,92,255,.25)}.switch[type=checkbox].is-info:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(3,155,229,.25);box-shadow:0 0 0 .125em rgba(3,155,229,.25)}.switch[type=checkbox].is-success:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(6,214,160,.25);box-shadow:0 0 0 .125em rgba(6,214,160,.25)}.switch[type=checkbox].is-warning:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(237,165,20,.25);box-shadow:0 0 0 .125em rgba(237,165,20,.25)}.switch[type=checkbox].is-danger:checked:focus:not(:active)+label::before{-webkit-box-shadow:0 0 0 .125em rgba(249,43,96,.25);box-shadow:0 0 0 .125em rgba(249,43,96,.25)}.hero{position:relative}.carousel-wrap .testimonials-solo-carousel .hero-form .testimonial-item .field .control .input:not(:focus),.hero-form .carousel-wrap .testimonials-solo-carousel .testimonial-item .field .control .input:not(:focus),.hero-form .flex-card .field .control .input:not(:focus),.hero-form .network-grid .network-card .field .control .input:not(:focus),.hero-form .profile-card .field .control .input:not(:focus),.hero-form .project-card .field .control .input:not(:focus),.network-grid .hero-form .network-card .field .control .input:not(:focus){border-color:#dee2e6}.mapbox-hero{position:relative}.contact-page-form{display:block;padding:40px;border:1px solid #eaecef;-webkit-box-shadow:-1px 3px 15px 0 rgba(0,0,0,.06);box-shadow:-1px 3px 15px 0 rgba(0,0,0,.06);border-radius:6px;width:100%;max-width:380px;margin:0 auto;text-align:left}.contact-page-form>h3{font-family:"Nexa Bold",sans-serif;font-size:1.4rem;color:#444f60}.contact-page-form>p{color:#8e9baf;margin-bottom:2rem}.contact-page-form .column{padding:.5rem}.contact-page-form .field>label{font-size:.95rem}.contact-page-form .field .control .input{font-size:1.1rem}@media (max-width:768px){#main-hero{max-height:100vh;background-position-x:55%!important}}@font-face{font-family:slick;src:url(/assets/fonts/slick.eot);src:url(/assets/fonts/slick.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/slick.woff) format("woff"),url(/assets/fonts/slick.ttf) format("truetype"),url(/assets/fonts/slick.svg#slick) format("svg");font-weight:400;font-style:normal} \ No newline at end of file diff --git a/assets/js/main.js b/assets/js/main.js index b8a253d..79dfe79 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -9,7 +9,7 @@ $(document).ready(function() { $("input").val(getQuery("ip")); getInfo(); } - $("table").hide(); + $("#table").hide(); $("#share").hide(); $("button").click(function() { $(this).css({ @@ -17,7 +17,7 @@ $(document).ready(function() { 'background-color': '' }); $(this).text("Searching..."); - $("table").hide(1000); + $("#table").hide(500); $("input").val(trim($("input").val())); if ($("input").val() == '' || checkIP($("input").val()) == "ok") { getInfo(); @@ -118,7 +118,6 @@ function getInfo() { $("input").val(data.ip); } $("button").text("Search"); - $("table").show(1000); $("#ip").text(data.ip); data.city = (data.city == null) ? "Unknow" : data.city; data.region = (data.region == null) ? "Unknow" : data.region; @@ -149,6 +148,7 @@ function getInfo() { $("#loc").html('' + data.loc + ''); draw(parseFloat(data.loc.split(',')[0]), parseFloat(data.loc.split(',')[1])); } + $("#table").show(500); }); } diff --git a/assets/js/main.min.js b/assets/js/main.min.js index 1f54725..45c8cc3 100644 --- a/assets/js/main.min.js +++ b/assets/js/main.min.js @@ -1 +1 @@ -var rangeSize=300,shareX,shareY;function checkRange(){var distanceX=Math.abs(event.pageX-shareX),distanceY=Math.abs(event.pageY-shareY);(distanceX>=rangeSize||distanceY>=rangeSize)&&hideQRCode()}function hideQRCode(){$("#qrcode").is(":hidden")||$("#share").hide(200)}function showQRCode(){var ip=$("#ip").text();if("ok"==checkIP(ip)){var pageUri="https://"+window.location.host+"/?ip="+ip;$("#qrcode").attr("href",pageUri),$("#qrcode").empty(),$("#qrcode").qrcode({width:100,height:100,text:pageUri});var shareLeft=event.pageX-50,shareTop=event.pageY+15;shareLeft+122>$(document).width()&&(shareLeft=$(document).width()-122),shareTop+122>$(document).height()&&(shareTop=$(document).height()-122),shareX=shareLeft+61,shareY=shareTop+61,$("#qrcode").is(":hidden")?($("#share").css("left",shareLeft),$("#share").css("top",shareTop),$("#share").show(200)):$("#share").hide(100,(function(){$("#share").css("left",shareLeft),$("#share").css("top",shareTop),$("#share").show(150)}))}}function getInfo(){$.get("/info/"+$("input").val(),(function(data){if(console.log(data),"F"!=data.status){if($("input").val()||$("input").val(data.ip),$("button").text("Search"),$("table").show(1e3),$("#ip").text(data.ip),data.city=null==data.city?"Unknow":data.city,data.region=null==data.region?"Unknow":data.region,data.country=null==data.country?"Unknow":data.country,data.timezone=null==data.timezone?"Unknow":data.timezone,data.isp=null==data.isp?"Unknow":data.isp,data.scope=null==data.scope?"Unknow":data.scope,data.detail=null==data.detail||" "==data.detail?"Unknow":data.detail,$("#city").text(data.city),$("#region").text(data.region),$("#country").text(data.country),$("#timezone").text(data.timezone),$("#isp").text(data.isp),$("#scope").text(data.scope),$("#detail").text(data.detail),null==data.as)$("#as").text("Unknow");else{$("#as").text(data.as);var asUri="https://bgpview.io/asn/"+data.as.substr(2);$("#as").html(''+data.as+"")}if(null==data.loc)$("#loc").text("Unknow"),clear();else{var earthUri="https://earth.google.com/web/@"+data.loc+",0a,398836d,1y,0h,0t,0r";$("#loc").html(''+data.loc+""),draw(parseFloat(data.loc.split(",")[0]),parseFloat(data.loc.split(",")[1]))}}else errorIP()}))}function getVersion(){$.get("/version",(function(data){console.log(data),data.qqwry=data.qqwry.slice(0,4)+"-"+data.qqwry.slice(4,6)+"-"+data.qqwry.slice(6,8),data.ipip=data.ipip.slice(0,4)+"-"+data.ipip.slice(4,6)+"-"+data.ipip.slice(6,8);var data_ver="";data_ver+="echoIP: "+data.echoip+"\n",data_ver+="纯真数据库: "+data.qqwry+"\n",data_ver+="IPIP.net数据库: "+data.ipip,alert(data_ver)}))}function trim(str){return str.replace(/(^\s*)|(\s*$)/g,"")}function errorIP(){$("button").text("Illegal IP"),$("button").css({"border-color":"#ff406f","background-color":"#ff406f"}),$("input").focus()}function checkIP(ipStr){if(null===ipStr)return"error";var regIPv4=/^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/,regIPv6=/^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))$/,V4=ipStr.match(regIPv4),V6=ipStr.match(regIPv6);return null===V4&&null===V6?"error":"ok"}function getQuery(name){var reg=new RegExp("(^|&)"+name+"=([^&]*)(&|$)"),result=window.location.search.substr(1).match(reg);return null!=result?unescape(result[2]):null}function clear(){var map;new mapboxgl.Map({container:"map",style:"mapbox://styles/mapbox/streets-v11",center:[0,0],zoom:1}).on("load",(function(){console.log("reset map")}))}function draw(x,y){var size=100,map=new mapboxgl.Map({container:"map",style:"mapbox://styles/mapbox/streets-v11",center:[y,x],zoom:3}),pulsingDot={width:100,height:100,data:new Uint8Array(4e4),onAdd:function(){var canvas=document.createElement("canvas");canvas.width=this.width,canvas.height=this.height,this.context=canvas.getContext("2d")},render:function(){var duration=1e3,t=performance.now()%1e3/1e3,radius=15,outerRadius=35*t+15,context=this.context;return context.clearRect(0,0,this.width,this.height),context.beginPath(),context.arc(this.width/2,this.height/2,outerRadius,0,2*Math.PI),context.fillStyle="rgba(255, 200, 200,"+(1-t)+")",context.fill(),context.beginPath(),context.arc(this.width/2,this.height/2,15,0,2*Math.PI),context.fillStyle="rgba(255, 100, 100, 1)",context.strokeStyle="white",context.lineWidth=2+4*(1-t),context.fill(),context.stroke(),this.data=context.getImageData(0,0,this.width,this.height).data,map.triggerRepaint(),!0}};map.on("load",(function(){map.addImage("pulsing-dot",pulsingDot,{pixelRatio:2}),map.addLayer({id:"points",type:"symbol",source:{type:"geojson",data:{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Point",coordinates:[y,x]}}]}},layout:{"icon-image":"pulsing-dot"}})}))}mapboxgl.accessToken="pk.eyJ1Ijoic2hldm9ua3VhbiIsImEiOiJja20yMjlnNDYybGg2Mm5zNW40eTNnNnUwIn0.6xj6sgjWvdQgT_7OQUy_Jg",$(document).ready((function(){null===getQuery("ip")?getInfo():($("input").val(getQuery("ip")),getInfo()),$("table").hide(),$("#share").hide(),$("button").click((function(){$(this).css({"border-color":"","background-color":""}),$(this).text("Searching..."),$("table").hide(1e3),$("input").val(trim($("input").val())),""==$("input").val()||"ok"==checkIP($("input").val())?getInfo():errorIP()})),$("button").dblclick((function(event){event.stopPropagation(),getVersion()})),$("input").dblclick((function(event){event.stopPropagation()})),$("table").dblclick((function(event){event.stopPropagation()})),$("#output").dblclick((function(){showQRCode()})),$("#output").click((function(){hideQRCode()})),$("#map").click((function(){hideQRCode()})),$("body").mousemove((function(){checkRange()})),$("body").mouseleave((function(){hideQRCode()}))})),$(document).keydown((function(event){13==event.keyCode&&$("button").focus()})); \ No newline at end of file +var rangeSize=300,shareX,shareY;function toCenter(){var objWidth=$(".positioncontrol").css("width");objWidth=objWidth.substr(0,objWidth.length-2);var left=($(document).width()-objWidth)/2;$(".positioncontrol").css("left",left+"px")}function checkRange(){var distanceX=Math.abs(event.pageX-shareX),distanceY=Math.abs(event.pageY-shareY);(distanceX>=rangeSize||distanceY>=rangeSize)&&hideQRCode()}function hideQRCode(){$("#qrcode").is(":hidden")||$("#share").hide(200)}function showQRCode(){var ip=$("#ip").text();if("ok"==checkIP(ip)){var pageUri="https://"+window.location.host+"/?ip="+ip;$("#qrcode").attr("href",pageUri),$("#qrcode").empty(),$("#qrcode").qrcode({width:100,height:100,text:pageUri});var shareLeft=event.pageX-50,shareTop=event.pageY+15;shareLeft+122>$(document).width()&&(shareLeft=$(document).width()-122),shareTop+122>$(document).height()&&(shareTop=$(document).height()-122),shareX=shareLeft+61,shareY=shareTop+61,$("#qrcode").is(":hidden")?($("#share").css("left",shareLeft),$("#share").css("top",shareTop),$("#share").show(200)):$("#share").hide(100,(function(){$("#share").css("left",shareLeft),$("#share").css("top",shareTop),$("#share").show(150)}))}}function getInfo(){$.get("/info/"+$("input").val(),(function(data){if(console.log(data),"F"!=data.status){if($("input").val()||$("input").val(data.ip),$("button").text("Search"),$("#ip").text(data.ip),data.city=null==data.city?"Unknow":data.city,data.region=null==data.region?"Unknow":data.region,data.country=null==data.country?"Unknow":data.country,data.timezone=null==data.timezone?"Unknow":data.timezone,data.isp=null==data.isp?"Unknow":data.isp,data.scope=null==data.scope?"Unknow":data.scope,data.detail=null==data.detail||" "==data.detail?"Unknow":data.detail,$("#city").text(data.city),$("#region").text(data.region),$("#country").text(data.country),$("#timezone").text(data.timezone),$("#isp").text(data.isp),$("#scope").text(data.scope),$("#detail").text(data.detail),null==data.as)$("#as").text("Unknow");else{$("#as").text(data.as);var asUri="https://bgpview.io/asn/"+data.as.substr(2);$("#as").html(''+data.as+"")}if(null==data.loc)$("#loc").text("Unknow"),clear();else{var earthUri="https://earth.google.com/web/@"+data.loc+",0a,398836d,1y,0h,0t,0r";$("#loc").html(''+data.loc+""),draw(parseFloat(data.loc.split(",")[0]),parseFloat(data.loc.split(",")[1]))}$("#table").show(500)}else errorIP()}))}function getVersion(){$.get("/version",(function(data){console.log(data),data.qqwry=data.qqwry.slice(0,4)+"-"+data.qqwry.slice(4,6)+"-"+data.qqwry.slice(6,8),data.ipip=data.ipip.slice(0,4)+"-"+data.ipip.slice(4,6)+"-"+data.ipip.slice(6,8);var data_ver="";data_ver+="echoIP: "+data.echoip+"\n",data_ver+="纯真数据库: "+data.qqwry+"\n",data_ver+="IPIP.net数据库: "+data.ipip,alert(data_ver)}))}function trim(str){return str.replace(/(^\s*)|(\s*$)/g,"")}function errorIP(){$("button").text("Illegal IP"),$("button").css({"border-color":"#ff406f","background-color":"#ff406f"}),$("input").focus()}function checkIP(ipStr){if(null===ipStr)return"error";var regIPv4=/^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/,regIPv6=/^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))$/,V4=ipStr.match(regIPv4),V6=ipStr.match(regIPv6);return null===V4&&null===V6?"error":"ok"}function getQuery(name){var reg=new RegExp("(^|&)"+name+"=([^&]*)(&|$)"),result=window.location.search.substr(1).match(reg);return null!=result?unescape(result[2]):null}function clear(){var map;new mapboxgl.Map({container:"map",style:"mapbox://styles/mapbox/streets-v11",center:[0,0],zoom:1}).on("load",(function(){console.log("reset map")}))}function draw(x,y){var size=100,map=new mapboxgl.Map({container:"map",style:"mapbox://styles/mapbox/streets-v11",center:[y,x],zoom:3}),pulsingDot={width:100,height:100,data:new Uint8Array(4e4),onAdd:function(){var canvas=document.createElement("canvas");canvas.width=this.width,canvas.height=this.height,this.context=canvas.getContext("2d")},render:function(){var duration=1e3,t=performance.now()%1e3/1e3,radius=15,outerRadius=35*t+15,context=this.context;return context.clearRect(0,0,this.width,this.height),context.beginPath(),context.arc(this.width/2,this.height/2,outerRadius,0,2*Math.PI),context.fillStyle="rgba(255, 200, 200,"+(1-t)+")",context.fill(),context.beginPath(),context.arc(this.width/2,this.height/2,15,0,2*Math.PI),context.fillStyle="rgba(255, 100, 100, 1)",context.strokeStyle="white",context.lineWidth=2+4*(1-t),context.fill(),context.stroke(),this.data=context.getImageData(0,0,this.width,this.height).data,map.triggerRepaint(),!0}};map.on("load",(function(){map.addImage("pulsing-dot",pulsingDot,{pixelRatio:2}),map.addLayer({id:"points",type:"symbol",source:{type:"geojson",data:{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Point",coordinates:[y,x]}}]}},layout:{"icon-image":"pulsing-dot"}})}))}mapboxgl.accessToken="pk.eyJ1Ijoic2hldm9ua3VhbiIsImEiOiJja20yMjlnNDYybGg2Mm5zNW40eTNnNnUwIn0.6xj6sgjWvdQgT_7OQUy_Jg",$(document).ready((function(){null===getQuery("ip")?getInfo():($("input").val(getQuery("ip")),getInfo()),$("#table").hide(),$("#share").hide(),$("button").click((function(){$(this).css({"border-color":"","background-color":""}),$(this).text("Searching..."),$("#table").hide(500),$("input").val(trim($("input").val())),""==$("input").val()||"ok"==checkIP($("input").val())?getInfo():errorIP()})),$("button").dblclick((function(event){event.stopPropagation(),getVersion()})),$("input").dblclick((function(event){event.stopPropagation()})),$("table").dblclick((function(event){event.stopPropagation()})),$("#output").dblclick((function(){showQRCode()})),$("#output").click((function(){hideQRCode()})),$("#map").click((function(){hideQRCode()})),$("body").mousemove((function(){checkRange()})),$("body").mouseleave((function(){hideQRCode()}))})),$(document).keydown((function(event){13==event.keyCode&&$("button").focus()})); \ No newline at end of file diff --git a/index.html b/index.html index 55b06d5..0aa5152 100644 --- a/index.html +++ b/index.html @@ -48,6 +48,10 @@ color: #5165db; } + .input { + background-color: rgba(255, 255, 255, 0.5); + } + .table { color: #282828; } @@ -76,14 +80,25 @@ .positioncontrol { position: absolute; - left: calc(100vw*0.8 - 190px); + left: calc(80vw - 180px); + transform: translate(-20%, 0); } - @media screen and (max-width: 600px) { + @media screen and (max-width: 800px) { .positioncontrol { position: absolute; left: 0; right: 0; + transform: translate(0, 0); + } + } + + @media all and (orientation : portrait) { + .positioncontrol { + position: absolute; + left: 0; + right: 0; + transform: translate(0, 0); } } @@ -112,7 +127,6 @@ #qrcode canvas { display: block; } - @@ -127,7 +141,7 @@
- +
@@ -139,48 +153,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IP
AS
City
Region
Country
Timezone
Location
ISP
Scope
Detail
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IP
AS
City
Region
Country
Timezone
Location
ISP
Scope
Detail
+