HTTP request

Simple:


Advanced, helpfull:

Advanced, raw:

HTTPS request of 'iamroot.tech'

DNS resolve

DNS resolved in 102ms
iamroot.tech
A
209.126.83.17 (selected)
iamroot.tech
AAAA
2605:a140:2114:901::1 click to use

Connection

Connected to 209.126.83.17 in 11ms
  • Connected to host 209.126.83.17 (iamroot.tech), on port 443, in 3ms.
  • Connection is TLS 1.3-secured using certificat 'iamroot.tech' in additional 8ms.
  • Certificat expires 23-07-2024.
  • Certificat is issued by 'Let's Encrypt'.
  • SSL-certifiat valdiated okay.
 

Request

Request transmitted in 0ms
GET / HTTP/1.1
Connection: Close
Host: iamroot.tech
Accept: */*
User-agent: iamroot.tech

Response headers

Status 200 returned. First bytes recieved in 433ms
HTTP/1.1 200 OK 
Cache-Control: private 
Content-Type: text/html; charset=utf-8 
Count: 1 
Date: Fri, 26 Apr 2024 16:15:44 GMT 
Connection: close 
Content-Length: 146691 

Response content

Recieved a total of 146.864 bytes in 435ms
1
2
3
<!DOCTYPE html>
4
5
<html lang="en">
6
<head><title>
7
iamroot.tech - toolbox for dev, admin and UI/UX
8
</title>
9
    <meta charset="UTF-8" />
10
11
       
12
    
13
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png?2023121801">
14
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png?2023121801">
15
    <link rel="shortcut icon" href="/favicon/favicon.ico?2023121801">
16
        
17
    <link id="manifest" rel="manifest" />
18
    
19
    <link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png?2023121801">
20
    <link rel="mask-icon" href="/favicon/safari-pinned-tab.svg?2023121801" color="#1b1d21">
21
    <meta name="apple-mobile-web-app-title" content="iamroot.tech" /><meta name="application-name" content="iamroot.tech" /><meta name="msapplication-TileColor" content="#1b1d21" />
22
    <meta name="msapplication-config" content="/favicon/browserconfig.xml?2023121801">
23
    <meta name="theme-color" content="#1b1d21" /><meta name="GOOGLEBOT" content="NOARCHIVE" /><meta id="metadescription" name="description" content="iamroot.tech is a set of advanced online available tools, focusing on tasks the daily of sysadmins, develeopers and GUI/UI/UX." /><meta name="viewport" content="width=device-width, initial-scale=1" />
24
    
25
26
27
28
    <link rel="canonical" href="https://iamroot.tech/"/>
29
30
31
32
33
34
    <!-- nifty OnLoad thingy -->
35
    <script>
36
        function docReady(fn) {
37
            // see if DOM is already available
38
            if (document.readyState === "complete" || document.readyState === "interactive") {
39
                // call on next available tick
40
                setTimeout(fn, 1);
41
            } else {
42
                document.addEventListener("DOMContentLoaded", fn);
43
            }
44
        }
45
46
        function docComplete(fn) {
47
            // see if DOM is already available
48
            if (document.readyState === "complete") {
49
                // call on next available tick
50
                setTimeout(fn, 1);
51
            } else {
52
                document.addEventListener("DOMContentLoaded", fn);
53
            }
54
        }
55
    </script>
56
57
58
59
60
    <!-- make sure the serviceWorker is up and running for homescreen apps -->
61
    <!-- https://stackoverflow.com/questions/38826397/add-to-home-screen-functionality-using-javascript/46037389 -->
62
    <script async type="text/javascript">
63
        if ('serviceWorker' in navigator) {
64
            //console.log("Will the service worker register?");
65
            navigator.serviceWorker.register('/favicon/service-worker.js?2023121801')
66
                .then(function (reg) {
67
                    //console.log("Yes, it did.");
68
                }).catch(function (err) {
69
                    //console.log("No it didn't. This happened:", err)
70
                });
71
        }
72
    </script>
73
74
75
76
77
78
    <!-- if loaded as homescreen app - add 'homescreen' class to body -->
79
    <!-- https://stackoverflow.com/questions/41742390/javascript-to-check-if-pwa-or-mobile-web -->
80
    <script async type="text/javascript">
81
        docReady(function () {
82
            if (window.matchMedia('(display-mode: standalone)').matches) {
83
                console.log("This is running as standalone.");
84
                $('body').addClass("homescreen");
85
            }
86
        });
87
    </script>
88
89
    <style>
90
        .homescreen {
91
            
92
        }
93
    </style>
94
95
96
    
97
    
98
    <!-- jquery -->
99
    <script defer src="/css/jquery-3.6.0.min.js?2023121801"></script>
100
    
101
    
102
<!-- bootstrap START -->
103
    <script defer src="/css/bootstrap-min.js?2023121801"></script>
104
    
105
106
    <script defer src="/css/own.js?2023121801"></script>
107
    
108
109
    
110
        <link defer href="/css/theme-min.css?2023121801" rel="stylesheet">
111
        <link defer href="/css/tweaks.css?2023121801" rel="stylesheet">
112
    
113
114
115
116
117
118
119
    <script>
120
                               
121
        function textAreaAdjust(element) {
122
            if (element) {
123
                    element.style.height = (25+element.scrollHeight)+"px";
124
            }
125
        }
126
127
    </script>
128
129
130
131
132
133
    
134
        <!-- Global site tag (gtag.js) - Google Analytics -->
135
        <script async src="https://www.googletagmanager.com/gtag/js?id=G-2M7WFMYR2R"></script>
136
        <script>
137
            window.dataLayer = window.dataLayer || [];
138
            function gtag() { dataLayer.push(arguments); }
139
            gtag('js', new Date());
140
141
            gtag('config', 'G-2M7WFMYR2R');
142
        </script>
143
144
145
146
        <!-- google ads -->
147
        <script>
148
            gtag('config', 'AW-1050254940');
149
        </script>
150
        
151
        <!-- Event snippet for 'Website traffic' conversion page -->
152
        <script>
153
            gtag('event', 'conversion', { 'send_to': 'AW-1050254940/2C3mCK7D840DENy85vQD' });
154
        </script>
155
        
156
        
157
158
159
160
161
        <!-- Hotjar Tracking Code for https://iamroot.tech/ -->
162
        <script>
163
164
            docReady(function () {
165
166
167
                (function (h, o, t, j, a, r) {
168
                    h.hj = h.hj || function () { (h.hj.q = h.hj.q || []).push(arguments) };
169
                    h._hjSettings = { hjid: 2817804, hjsv: 6 };
170
                    a = o.getElementsByTagName('head')[0];
171
                    r = o.createElement('script'); r.async = 1;
172
                    r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv;
173
                    a.appendChild(r);
174
                })(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv=');
175
176
            });
177
        </script>
178
179
180
181
    
182
183
    
184
    <!-- if loaded on cellphone - add 'cellphone', 'android' and/or 'iphone' classes to body -->
185
    <!-- make the navbar visible as a last thing, once it has been placed properly -->
186
    <script>
187
        function tweakForPhone() {
188
            if (navigator.userAgent.indexOf("Android") > -1) {
189
                $('body').addClass("cellphone");
190
                $('body').addClass("android");
191
            }
192
            else if (navigator.userAgent.indexOf("iPhone") > -1) {
193
                $('body').addClass("cellphone");
194
                $('body').addClass("iphone");
195
            }
196
            else {
197
                $('body').removeClass("cellphone");
198
                $('body').removeClass("iphone");
199
                $('body').removeClass("android");
200
            }
201
202
203
            if (($(window).width() >= 1300) /*&& ($('body').hasClass("userAB"))*/) {
204
                $('#navbar').css("display", "none");
205
                $('body').removeClass("navbar_isvisible");
206
207
                $('#sidemenu').css("display", "block");
208
                $('body').addClass("sidemenu_isvisible");
209
            }
210
            else {
211
                $('#navbar').css("display", "block");
212
                $('body').addClass("navbar_isvisible");
213
214
                $('#sidemenu').css("display", "none");
215
                $('body').removeClass("sidemenu_isvisible");
216
            }
217
218
        }
219
220
        docReady(function () {
221
            tweakForPhone();
222
223
            $(window).resize(function () {
224
                tweakForPhone();
225
            });
226
        });
227
    </script>
228
    
229
    <style>
230
        /* default settings der speeder layoutet lidt op - kan reelt fjernes, for bliver også sat på andre måder */
231
        body {
232
233
            margin-left: auto;
234
            margin-right: auto;
235
        }
236
            
237
        @media (min-width: 1300px) {
238
            body {
239
                margin-left: 250px;
240
                margin-right: 50px;
241
            }
242
        }
243
        
244
    </style>
245
246
247
248
249
250
251
252
253
254
255
256
257
    <script>
258
        //https://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript
259
        // Copies a string to the clipboard. Must be called from within an
260
        // event handler such as click. May return false if it failed, but
261
        // this is not always possible. Browser support for Chrome 43+,
262
        // Firefox 42+, Safari 10+, Edge and Internet Explorer 10+.
263
        // Internet Explorer: The clipboard feature may be disabled by
264
        // an administrator. By default a prompt is shown the first
265
        // time the clipboard is used (per session).
266
        function copyToClipboard(text) {
267
            if (window.clipboardData && window.clipboardData.setData) {
268
                // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.
269
                return window.clipboardData.setData("Text", text);
270
271
            }
272
            else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
273
                var textarea = document.createElement("textarea");
274
                textarea.textContent = text;
275
                textarea.style.position = "fixed"; // Prevent scrolling to bottom of page in Microsoft Edge.
276
                document.body.appendChild(textarea);
277
                textarea.select();
278
                try {
279
                    return document.execCommand("copy"); // Security exception may be thrown by some browsers.
280
                }
281
                catch (ex) {
282
                    console.warn("Copy to clipboard failed.", ex);
283
                    return prompt("Copy to clipboard: Ctrl+C, Enter", text);
284
                }
285
                finally {
286
                    document.body.removeChild(textarea);
287
                }
288
            }
289
        }
290
291
        function copy(elm, txt) {
292
            var org = elm.innerHTML;
293
294
            if (copyToClipboard(txt)) {
295
296
                if (org.toUpperCase().indexOf("<IMG")>-1) {
297
                    elm.children[0].src = "/gfx/ok.png";
298
                }
299
                else {
300
                    elm.innerHTML = "copied";
301
                }
302
303
                setTimeout(function () {
304
                    if (org.toUpperCase().indexOf("<IMG") > -1) {
305
                        elm.children[0].src = "/gfx/copy.png";
306
                    }
307
                    else {
308
                            elm.innerHTML = org;
309
                    }
310
                }, 2000);
311
            }
312
313
            return (false);
314
        }
315
316
    </script>
317
318
    <style>
319
        .copyParent .copyIcon {
320
            /*display: none;*/
321
            opacity: 0;
322
            transition: opacity 0.1s;
323
        }
324
325
        .copyParent:hover .copyIcon {
326
            /*display: inline-block;*/
327
            opacity: 0.8;
328
        }
329
330
        .copyIcon {
331
            position:absolute;
332
            right:0;
333
334
            height: 20px;
335
            width: auto;
336
            padding-right: 19px;
337
338
        }
339
340
        .copyIcon img {
341
            height: 100%;
342
            width: auto;
343
        }
344
    </style>
345
346
347
348
349
350
351
352
353
    
354
355
356
357
    <script>
358
        function addFromInfo(elm, from) {
359
            /*
360
            try {
361
                if (elm.href.indexOf("from=") == -1) {
362
                    if (elm.href.indexOf("?") == -1) {
363
                        elm.href += "?from=" + from;
364
                    }
365
                    else {
366
                        elm.href += "&from=" + from;
367
                    }
368
                }
369
            }
370
            catch (error) {
371
            }
372
            */
373
374
            var url = "/feedback/click.aspx?q=" + from;
375
376
            var jqxhr = $.ajax(url)
377
                .done(function () {
378
                    //alert("success");
379
                })
380
                .fail(function () {
381
                    //alert("error");
382
                })
383
                .always(function () {
384
                    //alert("complete");
385
                });
386
        }
387
    </script>
388
389
390
391
392
393
394
395
396
397
398
399
400
</head>
401
<body class=" userB sidemenu_isvisible">
402
403
404
    
405
406
        <style>
407
        .nav-side-menu {
408
          overflow: auto;
409
          font-size: 12px;
410
          font-weight: 200;
411
          background-color: #2e353d;
412
          position: fixed;
413
          top: 0px;
414
          width: 300px;
415
          height: 100%;
416
          color: #e1ffff;
417
        }
418
        .nav-side-menu .brand {
419
          /*background-color: #23282e;*/
420
          line-height: 50px;
421
          display: block;
422
          text-align: center;
423
          font-size: 14px;
424
        }
425
        .nav-side-menu .toggle-btn {
426
          display: none;
427
        }
428
        .nav-side-menu ul,
429
        .nav-side-menu li {
430
            list-style: none;
431
            padding: 0px;
432
            margin: 0px;
433
            line-height: 35px;
434
            line-height: 32px;
435
            /*cursor: pointer;*/
436
        }
437
        .nav-side-menu ul .collapsed .arrow:before{
438
            content: "+";
439
            display: inline-block;
440
            padding-left:10px;
441
            padding-right: 10px;
442
            vertical-align: middle;
443
            float:right;
444
        }
445
             
446
        .nav-side-menu ul :not(collapsed) .arrow:before,
447
        .nav-side-menu li :not(collapsed) .arrow:before {
448
          content: "-";
449
          display: inline-block;
450
          padding-left: 10px;
451
          padding-right: 10px;
452
          vertical-align: middle;
453
          float: right;
454
        }
455
        .nav-side-menu ul .active,
456
        .nav-side-menu li .active {
457
          border-left: 3px solid #d19b3d;
458
          background-color: #4f5b69;
459
        }
460
        .nav-side-menu ul .sub-menu li.active,
461
        .nav-side-menu li .sub-menu li.active {
462
          color: #d19b3d;
463
        }
464
        .nav-side-menu ul .sub-menu li.active a,
465
        .nav-side-menu li .sub-menu li.active a {
466
          color: #d19b3d;
467
        }
468
        .nav-side-menu ul .sub-menu li,
469
        .nav-side-menu li .sub-menu li {
470
          padding-left: 32px;
471
        }
472
        .nav-side-menu ul .sub-menu li:hover,
473
        .nav-side-menu li .sub-menu li:hover {
474
        }
475
        .nav-side-menu ul .sub-menu li:before,
476
        .nav-side-menu li .sub-menu li:before {
477
          display: inline-block;
478
          padding-left: 10px;
479
          padding-right: 10px;
480
          vertical-align: middle;
481
        }
482
        .nav-side-menu li {
483
          padding-left: 0px;
484
          border-left: 3px solid #2e353d;
485
          border-bottom: 1px solid #23282e;
486
        }
487
        .nav-side-menu li a {
488
          text-decoration: none;
489
          color: #e1ffff;
490
        }
491
        .nav-side-menu li a i {
492
          padding-left: 10px;
493
          width: 20px;
494
          padding-right: 20px;
495
        }
496
        .nav-side-menu li:hover {
497
          border-left: 3px solid #d19b3d;
498
          background-color: #4f5b69;
499
          -webkit-transition: all 1s ease;
500
          -moz-transition: all 1s ease;
501
          -o-transition: all 1s ease;
502
          -ms-transition: all 1s ease;
503
          transition: all 1s ease;
504
        }
505
        .nav-side-menu li:hover img {
506
          height: 22px;
507
          width: 22px;
508
          transition: all 0.2s ease;
509
        }
510
          
511
        .nav-side-menu .menu-list .menu-content {
512
            display: block;
513
        }
514
        
515
516
517
518
519
520
521
522
        .nav-side-menu {
523
            width: 100%;
524
            left: 0px;
525
            overflow: unset;
526
            color: #fff;
527
            background-color: #151517;
528
            transition: all 0s ease;
529
            opacity: 1;
530
        }
531
532
        .nav-side-menu:hover {
533
            transition: all 0s ease;
534
            opacity: 1;
535
        }
536
537
        .nav-side-menu .brand {
538
            font-size: 16px;
539
            
540
        }
541
542
        .nav-side-menu li {
543
            height: 35px;
544
            height: 32px;
545
            border-right: 0px;
546
            border-left: 0px;
547
            border-bottom: 1px solid #000;
548
            padding-left: 5px;
549
            padding-right: 10px;
550
            
551
        }
552
553
        .nav-side-menu li:hover {
554
            border-left: 0px;
555
            border-right: 0px;
556
            background-color: #4f5b69;
557
            -webkit-transition: all 0.5s ease;
558
            -moz-transition: all 0.5s ease;
559
            -o-transition: all 0.5s ease;
560
            -ms-transition: all 0.5s ease;
561
             transition: all 0.5s ease;
562
            background-color: rgba(255,255,255,0.1);
563
        }
564
565
        .nav-side-menu .current,
566
        .nav-side-menu .current:hover {
567
            background-color: rgba(255,255,255,0.2);
568
        }
569
570
        .nav-side-menu li a {
571
          text-decoration: none;
572
          color: #fff;
573
          display: block;
574
        }
575
576
        .nav-side-menu li a:hover {
577
        }
578
579
580
581
582
583
584
        @media (min-width: 1300px) {
585
586
            .nav-side-menu {
587
                width: 175px;
588
                opacity: 0.8;
589
                transition: all 0.5s ease;
590
            }
591
592
            .nav-side-menu:hover {
593
                transition: all 0.5s ease;
594
                opacity: 1;
595
                color: #fff;
596
                /*width: 400px;*/
597
            }
598
599
            body.sidemenu_isvisible {
600
                margin: 0px;
601
                padding: 0px;
602
603
                margin-left: 250px;
604
                margin-right: 50px;
605
            }
606
            
607
            
608
        }
609
610
        @media (min-width: 1300px) {
611
            body.sidemenu_isvisible .container {
612
                width: 1000px ;
613
            }
614
        }
615
616
        @media (min-width: 1400px) {
617
            body.sidemenu_isvisible .container {
618
                width: 1100px ;
619
            }
620
        }
621
622
        @media (min-width: 1500px) {
623
            body.sidemenu_isvisible .container {
624
                width: 1200px ;
625
            }
626
        }
627
628
        @media (min-width: 1700px) {
629
            body.sidemenu_isvisible .container {
630
                width: 1400px ;
631
            }
632
        }
633
634
        @media (min-width: 1800px) {
635
            body.sidemenu_isvisible .container {
636
                width: 1500px ;
637
            }
638
        }
639
640
        @media (min-width: 1900px) {
641
            body.sidemenu_isvisible .container {
642
                width: 1600px ;
643
            }
644
        }
645
646
        body.sidemenu_isvisible .container {
647
            padding-right: 15px;
648
            padding-left: 15px;
649
            margin-right: auto;
650
            margin-left: auto;
651
        }
652
653
654
655
656
657
        /* der skal gøres noget ved det her */
658
        /*.pageContentWrapper {
659
             margin-bottom: unset;
660
        }
661
662
        .footer {
663
            position: unset;
664
             bottom: unset;
665
             left: unset;
666
             right: unset;
667
             height: unset;
668
             left: unset;
669
        }
670
671
        body.sidemenu_isvisible .footer {
672
            margin-left: auto !important;
673
        }
674
        */
675
676
677
678
679
680
        
681
        
682
        @media (min-height: 700px) {
683
            .nav-side-menu li {
684
                height: 24px;
685
            }
686
687
            .nav-side-menu ul,
688
            .nav-side-menu li {
689
                line-height: 24px;
690
            }
691
        }
692
693
        
694
        @media (min-height: 800px) {
695
            .nav-side-menu li {
696
                height: 28px;
697
            }
698
699
            .nav-side-menu ul,
700
            .nav-side-menu li {
701
                line-height: 28px;
702
            }
703
        }
704
705
706
        @media (min-height: 900px) {
707
            .nav-side-menu li {
708
                height: 30px;
709
            }
710
711
            .nav-side-menu ul,
712
            .nav-side-menu li {
713
                line-height: 30px;
714
            }
715
        }
716
717
718
719
720
721
722
        .toggle-btn .icon-bar {
723
            display: block;
724
            width: 22px;
725
            height: 2px;
726
            border-radius: 1px;
727
        }
728
        </style>
729
        
730
        <div class="nav-side-menu" id="sidemenu" style="display: none;">
731
            <div class="brand"><a href="/" OnClick="addFromInfo(this, 'leftmenu');" style="text-decoration: none;"><img src="/favicon/favicon-32x32.png?2023121801" style="height: 32px; width: 32px; margin-right: 5px;" alt="iamroot.tech logo"/>iamroot.tech</a></div>
732
              <button type="button" class="toggle-btn collapsed" data-toggle="collapse" data-target="#menu-content" aria-expanded="false">
733
                <span class="sr-only">Toggle navigation</span>
734
                <span class="icon-bar"></span>
735
                <span class="icon-bar"></span>
736
                <span class="icon-bar"></span>
737
              </button>
738
  
739
                <!--<div class="small" style="margin-left: 10px; margin-right: 10px;">
740
                    <a href="#">Frontpage</a>
741
                    
742
                    <a href="#">API</a>
743
744
                    <a href="#">Privacy</a>
745
                    <a href="#">Terms</a>
746
                    
747
                </div>-->
748
            
749
                <div class="menu-list">
750
  
751
752
753
                    <ul id="menu-content" class="menu-content collapse out">
754
755
                        
756
757
758
759
760
761
                        <li style="margin-top: 30px;"><b>Internet tools</b></li>
762
                        
763
                                <li class="">
764
                                    <a href="/dns-lookup/" OnClick="addFromInfo(this, 'leftmenu');" title="DNS lookup / nslookup / DIG of DNS records. An online tool for DNS lookups. By default recursive lookups querying the authoritative name servers. Lookups on specific DNS resolvers are also possible. Additionally, it will look up secondary records and output a full log of what was done on a technical level." class="truncate">
765
                                        <img src="/gfx/dnslookup.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="DNS lookup" />DNS lookup
766
                                    </a>
767
                                </li>
768
                                
769
                                <li class="">
770
                                    <a href="/dns-propagation/" OnClick="addFromInfo(this, 'leftmenu');" title="Check how DNS records are propagated throughout the world. It will start by examining the authoritative name servers and compare the records with the results from over 20 DNS servers worldwide." class="truncate">
771
                                        <img src="/gfx/dnspropagation.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="DNS propagation check" />DNS propagation check
772
                                    </a>
773
                                </li>
774
                                
775
                                <li class="">
776
                                    <a href="/port-scan/" OnClick="addFromInfo(this, 'leftmenu');" title="Scan any IP for any open ports. Includes probing functionality on DNS, SMTP, POP3, IMAP and HTTP protocols if open." class="truncate">
777
                                        <img src="/gfx/portscan.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Port scan + probeing" />Port scan + probeing
778
                                    </a>
779
                                </li>
780
                                
781
                                <li class="">
782
                                    <a href="/whois/" OnClick="addFromInfo(this, 'leftmenu');" title="Perform WHOIS and/or RDAP lookups on domains, IP addresses, and ASNs. Will output all available technical info, contact info, etc." class="truncate">
783
                                        <img src="/gfx/whois.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="WHOIS / RDAP lookup" />WHOIS / RDAP lookup
784
                                    </a>
785
                                </li>
786
                                
787
                                <li class="">
788
                                    <a href="/http-request-tool/" OnClick="addFromInfo(this, 'leftmenu');" title="Perform HTTP/HTTPS requests to any server" class="truncate">
789
                                        <img src="/gfx/httprequest.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="HTTP/S request tool" />HTTP/S request tool
790
                                    </a>
791
                                </li>
792
                                
793
                                <li class="">
794
                                    <a href="/ssl-certificate-check/" OnClick="addFromInfo(this, 'leftmenu');" title="Check details of your SSL certificate and the full chain of certificates." class="truncate">
795
                                        <img src="/gfx/sslcheck.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="TLS/SSL certificate check" />TLS/SSL certificate check<div class="betaMark">beta</div>
796
                                    </a>
797
                                </li>
798
                                
799
                                <li class="">
800
                                    <a href="/dnsbl-blacklist-checker/" OnClick="addFromInfo(this, 'leftmenu');" title="Check IP or domain against the most common e-mail blacklists." class="truncate">
801
                                        <img src="/gfx/dnsbl.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="E-mail DNSBL blacklist check" />E-mail DNSBL blacklist check
802
                                    </a>
803
                                </li>
804
                                
805
                                <li class="">
806
                                    <a href="/reverse-dns-ptr-lookup/" OnClick="addFromInfo(this, 'leftmenu');" title="Perform reverse DNS (rDNS/PTR) lookups of any IP." class="truncate">
807
                                        <img src="/gfx/rdns.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Reverse DNS" />Reverse DNS
808
                                    </a>
809
                                </li>
810
                                
811
                                <li class="">
812
                                    <a href="/cidr/" OnClick="addFromInfo(this, 'leftmenu');" title="IP to CIDR calculation tool with subnet info. The reverse, CIDR ranges to IP addresses, is also possible. Last but not least, it includes a tool for refactoring groups of IPs, domain names, and/or other CIDR ranges." class="truncate">
813
                                        <img src="/gfx/cidr.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="CIDR calculator" />CIDR calculator<div class="betaMark">beta</div>
814
                                    </a>
815
                                </li>
816
                                
817
                                <li class="">
818
                                    <a href="/asndatabase/" OnClick="addFromInfo(this, 'leftmenu');" title="A fully searchable database of ASN records provides comprehensive details on peers, announced prefixes, and Internet Exchange memberships. Including metadata such as name, website, logo, and statistics for each ASN. Searchable by name, ASN, IP, or CIDR." class="truncate">
819
                                        <img src="/gfx/asndatabase.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="ASN database lookup" />ASN database lookup<div class="betaMark">beta</div>
820
                                    </a>
821
                                </li>
822
                                
823
                                <li class="">
824
                                    <a href="/whats-my-ip/" OnClick="addFromInfo(this, 'leftmenu');" title="Check your own IP - both IPv4 and IPv6. Works as a connectivity test as well." class="truncate">
825
                                        <img src="/gfx/myip.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="What is my IPv4 and IPv6?" />What is my IPv4 and IPv6?
826
                                    </a>
827
                                </li>
828
                                
829
                                <li class="">
830
                                    <a href="/geoip/" OnClick="addFromInfo(this, 'leftmenu');" title="Online tool GeoIP location of any IP and/or domain." class="truncate">
831
                                        <img src="/gfx/geoip.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="GeoIP location" />GeoIP location
832
                                    </a>
833
                                </li>
834
                                
835
                                <li class="">
836
                                    <a href="/qrcode/" OnClick="addFromInfo(this, 'leftmenu');" title="Turn any URL into a scanable QR code." class="truncate">
837
                                        <img src="/gfx/qrcode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="QR code generator" />QR code generator
838
                                    </a>
839
                                </li>
840
                                
841
                        
842
843
844
                        <li style="margin-top: 30px;"><b>Dev tools</b></li>
845
                        
846
                                <li class="">
847
                                    <a href="/color-contrast/" OnClick="addFromInfo(this, 'leftmenu');" title="Online tool for checking the contrast/readability of two colors - and get hints for optimizing the contrast." class="truncate">
848
                                        <img src="/gfx/colorcontrast.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Color contrast checker" />Color contrast checker
849
                                    </a>
850
                                </li>
851
                                
852
                                <li class="">
853
                                    <a href="/color-picker/" OnClick="addFromInfo(this, 'leftmenu');" title="Pick any color - and see info on related colors, contrast colors and different shades." class="truncate">
854
                                        <img src="/gfx/colorpicker.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Color picker" />Color picker
855
                                    </a>
856
                                </li>
857
                                
858
                                <li class="">
859
                                    <a href="/lorem-ipsum/" OnClick="addFromInfo(this, 'leftmenu');" title="Lorem, ipsum generator, with the option of creating text's of different levels of complexity." class="truncate">
860
                                        <img src="/gfx/loremipsum.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Lorem ipsum generator" />Lorem ipsum generator
861
                                    </a>
862
                                </li>
863
                                
864
                                <li class="">
865
                                    <a href="/urlencode/" OnClick="addFromInfo(this, 'leftmenu');" title="Online tool for URLencode and/or URLdecode of any string." class="truncate">
866
                                        <img src="/gfx/urlencode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="URL encode/decode" />URL encode/decode
867
                                    </a>
868
                                </li>
869
                                
870
                                <li class="">
871
                                    <a href="/htmlencode/" OnClick="addFromInfo(this, 'leftmenu');" title="Online tool for HTMLencode and/or HTMLdecode of any string." class="truncate">
872
                                        <img src="/gfx/htmlencode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="HTML encode/decode" />HTML encode/decode
873
                                    </a>
874
                                </li>
875
                                
876
                                <li class="">
877
                                    <a href="/base64encode/" OnClick="addFromInfo(this, 'leftmenu');" title="Online tool for BASE64 encoding af binary-to-text, and BASE64 decoding for text-to-binary." class="truncate">
878
                                        <img src="/gfx/base64encode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="BASE64 encode/decode" />BASE64 encode/decode
879
                                    </a>
880
                                </li>
881
                                
882
                                <li class="">
883
                                    <a href="/hashing/" OnClick="addFromInfo(this, 'leftmenu');" title="Online tool for hash encoding using MD5, SHA-1, SHA256, SHA384, SHA512 and RIPEMD algorithms." class="truncate">
884
                                        <img src="/gfx/hashing.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Hash calculator (CRC64 - MD5 - SHA - RIPEMD)" />Hash calculator (CRC64 - MD5 - SHA - RIPEMD)
885
                                    </a>
886
                                </li>
887
                                
888
889
890
                        
891
                        
892
893
894
895
896
897
                        <li style="margin-top: 30px;"><b>Misc tools</b></li>
898
                        
899
                                <li class="">
900
                                    <a href="/password/" OnClick="addFromInfo(this, 'leftmenu');" title="Create passwords of any complexity. Ready to copy and with phonetic nato codes for easy to read out loud." class="truncate">
901
                                        <img src="/gfx/password.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Password generator" />Password generator
902
                                    </a>
903
                                </li>
904
                                
905
                                <li class="">
906
                                    <a href="/world-clock/" OnClick="addFromInfo(this, 'leftmenu');" title="Beautiful day/night map of the world, with markup of all major cities including local date and time." class="truncate">
907
                                        <img src="/gfx/worldclock.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="World map, day/night + local time" />World map, day/night + local time<div class="betaMark">beta</div>
908
                                    </a>
909
                                </li>
910
                                
911
912
913
914
                    </ul>
915
916
                    <!--
917
                    <ul id="menu-content" class="menu-content collapse out" style="bottom: 0px; position: fixed;">
918
                         <li>
919
                          <a href="#">Users</a>
920
                        </li>
921
                         <li>
922
                          <a href="#">Users</a>
923
                        </li>
924
                        </ul>
925
                    -->
926
             </div>
927
        </div>
928
929
930
931
932
    
933
    
934
935
        <nav class="navbar navbar-default navbar-fixed-top " id="navbar" style="display: none;">
936
          <div class="container-fluid" style="margin: 0px;">
937
            
938
              
939
940
            <!-- innerlinks if cellphone / menu at bottom -->
941
            <div class=" znavbar-collapse collapse " style=" border-bottom: 1px solid #282828; margin-left: -15px; margin-right: -15px; text-align: center;" id="pageNavbarBottom" aria-expanded="false" aria-controls="pageNavbarBottom">
942
                <div id="innerLinksBottom" style="padding-top: 10px; padding-bottom: 10px;"></div>
943
            </div>
944
945
946
              
947
            <!-- Brand and toggle get grouped for better mobile display -->
948
            <div class="navbar-header">
949
950
              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#siteNavbar" aria-expanded="false" onclick="InnerlinksSmHide();">
951
                  All tools
952
              </button>
953
                
954
              <button type="button" id="pagenavsm" class="navbar-toggle collapsed cellphone-hidden hidden" onclick="InnerlinksSmShow();" data-toggle="collapse" data-target="#pageNavbarTop" aria-expanded="false">
955
                  Page nav
956
              </button>
957
                
958
              <button type="button" id="pagenavcell" class="navbar-toggle collapsed cellphone-visible hidden" onclick="InnerlinksSmShow();" data-toggle="collapse" data-target="#pageNavbarBottom" aria-expanded="false">
959
                  Page nav
960
              </button>
961
            
962
              <a class="navbar-brand" id="mainLeft" href="/" OnClick="addFromInfo(this, 'topmenu');"><img src=/favicon/favicon-32x32.png?2023121801" style="height: 20px; width: 20px; float: left; margin-right: 5px;" alt="iamroot.tech logo"/>iamroot.tech</a>
963
964
            </div>
965
      
966
            <!-- Collect the nav links, forms, and other content for toggling -->
967
            <div class="navbar-collapse collapse" id="siteNavbar" aria-expanded="false" aria-controls="siteNavbar">
968
                
969
              <ul class="nav navbar-nav" id="menuLeft">
970
                  <li class="hidden-xs dropdown">
971
                      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Internet tools</a>
972
                      <ul class="dropdown-menu">
973
                          
974
                                <li class="">
975
                                    <a href="/dns-lookup/" OnClick="addFromInfo(this, 'topmenu');" title="DNS lookup / nslookup / DIG of DNS records. An online tool for DNS lookups. By default recursive lookups querying the authoritative name servers. Lookups on specific DNS resolvers are also possible. Additionally, it will look up secondary records and output a full log of what was done on a technical level." class="truncate">
976
                                        <img src="/gfx/dnslookup.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="DNS lookup" />DNS lookup
977
                                    </a>
978
                                </li>
979
                                
980
                                <li class="">
981
                                    <a href="/dns-propagation/" OnClick="addFromInfo(this, 'topmenu');" title="Check how DNS records are propagated throughout the world. It will start by examining the authoritative name servers and compare the records with the results from over 20 DNS servers worldwide." class="truncate">
982
                                        <img src="/gfx/dnspropagation.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="DNS propagation check" />DNS propagation check
983
                                    </a>
984
                                </li>
985
                                
986
                                <li class="">
987
                                    <a href="/port-scan/" OnClick="addFromInfo(this, 'topmenu');" title="Scan any IP for any open ports. Includes probing functionality on DNS, SMTP, POP3, IMAP and HTTP protocols if open." class="truncate">
988
                                        <img src="/gfx/portscan.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Port scan + probeing" />Port scan + probeing
989
                                    </a>
990
                                </li>
991
                                
992
                                <li class="">
993
                                    <a href="/whois/" OnClick="addFromInfo(this, 'topmenu');" title="Perform WHOIS and/or RDAP lookups on domains, IP addresses, and ASNs. Will output all available technical info, contact info, etc." class="truncate">
994
                                        <img src="/gfx/whois.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="WHOIS / RDAP lookup" />WHOIS / RDAP lookup
995
                                    </a>
996
                                </li>
997
                                
998
                                <li class="">
999
                                    <a href="/http-request-tool/" OnClick="addFromInfo(this, 'topmenu');" title="Perform HTTP/HTTPS requests to any server" class="truncate">
1000
                                        <img src="/gfx/httprequest.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="HTTP/S request tool" />HTTP/S request tool
1001
                                    </a>
1002
                                </li>
1003
                                
1004
                                <li class="">
1005
                                    <a href="/ssl-certificate-check/" OnClick="addFromInfo(this, 'topmenu');" title="Check details of your SSL certificate and the full chain of certificates." class="truncate">
1006
                                        <img src="/gfx/sslcheck.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="TLS/SSL certificate check" />TLS/SSL certificate check<div class="betaMark">beta</div>
1007
                                    </a>
1008
                                </li>
1009
                                
1010
                                <li class="">
1011
                                    <a href="/dnsbl-blacklist-checker/" OnClick="addFromInfo(this, 'topmenu');" title="Check IP or domain against the most common e-mail blacklists." class="truncate">
1012
                                        <img src="/gfx/dnsbl.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="E-mail DNSBL blacklist check" />E-mail DNSBL blacklist check
1013
                                    </a>
1014
                                </li>
1015
                                
1016
                                <li class="">
1017
                                    <a href="/reverse-dns-ptr-lookup/" OnClick="addFromInfo(this, 'topmenu');" title="Perform reverse DNS (rDNS/PTR) lookups of any IP." class="truncate">
1018
                                        <img src="/gfx/rdns.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Reverse DNS" />Reverse DNS
1019
                                    </a>
1020
                                </li>
1021
                                
1022
                                <li class="">
1023
                                    <a href="/cidr/" OnClick="addFromInfo(this, 'topmenu');" title="IP to CIDR calculation tool with subnet info. The reverse, CIDR ranges to IP addresses, is also possible. Last but not least, it includes a tool for refactoring groups of IPs, domain names, and/or other CIDR ranges." class="truncate">
1024
                                        <img src="/gfx/cidr.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="CIDR calculator" />CIDR calculator<div class="betaMark">beta</div>
1025
                                    </a>
1026
                                </li>
1027
                                
1028
                                <li class="">
1029
                                    <a href="/asndatabase/" OnClick="addFromInfo(this, 'topmenu');" title="A fully searchable database of ASN records provides comprehensive details on peers, announced prefixes, and Internet Exchange memberships. Including metadata such as name, website, logo, and statistics for each ASN. Searchable by name, ASN, IP, or CIDR." class="truncate">
1030
                                        <img src="/gfx/asndatabase.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="ASN database lookup" />ASN database lookup<div class="betaMark">beta</div>
1031
                                    </a>
1032
                                </li>
1033
                                
1034
                                <li class="">
1035
                                    <a href="/whats-my-ip/" OnClick="addFromInfo(this, 'topmenu');" title="Check your own IP - both IPv4 and IPv6. Works as a connectivity test as well." class="truncate">
1036
                                        <img src="/gfx/myip.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="What is my IPv4 and IPv6?" />What is my IPv4 and IPv6?
1037
                                    </a>
1038
                                </li>
1039
                                
1040
                                <li class="">
1041
                                    <a href="/geoip/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool GeoIP location of any IP and/or domain." class="truncate">
1042
                                        <img src="/gfx/geoip.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="GeoIP location" />GeoIP location
1043
                                    </a>
1044
                                </li>
1045
                                
1046
                                <li class="">
1047
                                    <a href="/qrcode/" OnClick="addFromInfo(this, 'topmenu');" title="Turn any URL into a scanable QR code." class="truncate">
1048
                                        <img src="/gfx/qrcode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="QR code generator" />QR code generator
1049
                                    </a>
1050
                                </li>
1051
                                
1052
                      </ul>
1053
                  </li>
1054
                  <li class="hidden-xs dropdown">
1055
                      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dev tools</a>
1056
                      <ul class="dropdown-menu">
1057
                          
1058
                                <li class="">
1059
                                    <a href="/color-contrast/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool for checking the contrast/readability of two colors - and get hints for optimizing the contrast." class="truncate">
1060
                                        <img src="/gfx/colorcontrast.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Color contrast checker" />Color contrast checker
1061
                                    </a>
1062
                                </li>
1063
                                
1064
                                <li class="">
1065
                                    <a href="/color-picker/" OnClick="addFromInfo(this, 'topmenu');" title="Pick any color - and see info on related colors, contrast colors and different shades." class="truncate">
1066
                                        <img src="/gfx/colorpicker.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Color picker" />Color picker
1067
                                    </a>
1068
                                </li>
1069
                                
1070
                                <li class="">
1071
                                    <a href="/lorem-ipsum/" OnClick="addFromInfo(this, 'topmenu');" title="Lorem, ipsum generator, with the option of creating text's of different levels of complexity." class="truncate">
1072
                                        <img src="/gfx/loremipsum.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Lorem ipsum generator" />Lorem ipsum generator
1073
                                    </a>
1074
                                </li>
1075
                                
1076
                                <li class="">
1077
                                    <a href="/urlencode/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool for URLencode and/or URLdecode of any string." class="truncate">
1078
                                        <img src="/gfx/urlencode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="URL encode/decode" />URL encode/decode
1079
                                    </a>
1080
                                </li>
1081
                                
1082
                                <li class="">
1083
                                    <a href="/htmlencode/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool for HTMLencode and/or HTMLdecode of any string." class="truncate">
1084
                                        <img src="/gfx/htmlencode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="HTML encode/decode" />HTML encode/decode
1085
                                    </a>
1086
                                </li>
1087
                                
1088
                                <li class="">
1089
                                    <a href="/base64encode/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool for BASE64 encoding af binary-to-text, and BASE64 decoding for text-to-binary." class="truncate">
1090
                                        <img src="/gfx/base64encode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="BASE64 encode/decode" />BASE64 encode/decode
1091
                                    </a>
1092
                                </li>
1093
                                
1094
                                <li class="">
1095
                                    <a href="/hashing/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool for hash encoding using MD5, SHA-1, SHA256, SHA384, SHA512 and RIPEMD algorithms." class="truncate">
1096
                                        <img src="/gfx/hashing.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Hash calculator (CRC64 - MD5 - SHA - RIPEMD)" />Hash calculator (CRC64 - MD5 - SHA - RIPEMD)
1097
                                    </a>
1098
                                </li>
1099
                                
1100
                      </ul>
1101
                  </li>
1102
                  <li class="hidden-xs dropdown">
1103
                      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Misc tools</a>
1104
                      <ul class="dropdown-menu">
1105
                          
1106
                                <li class="">
1107
                                    <a href="/password/" OnClick="addFromInfo(this, 'topmenu');" title="Create passwords of any complexity. Ready to copy and with phonetic nato codes for easy to read out loud." class="truncate">
1108
                                        <img src="/gfx/password.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Password generator" />Password generator
1109
                                    </a>
1110
                                </li>
1111
                                
1112
                                <li class="">
1113
                                    <a href="/world-clock/" OnClick="addFromInfo(this, 'topmenu');" title="Beautiful day/night map of the world, with markup of all major cities including local date and time." class="truncate">
1114
                                        <img src="/gfx/worldclock.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="World map, day/night + local time" />World map, day/night + local time<div class="betaMark">beta</div>
1115
                                    </a>
1116
                                </li>
1117
                                
1118
                      </ul>
1119
                  </li>
1120
                  <li class="hidden visible-xs text-left MainItem">
1121
                      <b>Internet tools</b><br /><div class="clearfix MainItemContentBox">
1122
                        
1123
                                <a href="/dns-lookup/" OnClick="addFromInfo(this, 'topmenu');" title="DNS lookup / nslookup / DIG of DNS records. An online tool for DNS lookups. By default recursive lookups querying the authoritative name servers. Lookups on specific DNS resolvers are also possible. Additionally, it will look up secondary records and output a full log of what was done on a technical level." class="truncate MainItemKids" style="max-width: 150px;">
1124
                                    <img src="/gfx/dnslookup.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="DNS lookup" />DNS lookup
1125
                                </a>
1126
                                
1127
                                <a href="/dns-propagation/" OnClick="addFromInfo(this, 'topmenu');" title="Check how DNS records are propagated throughout the world. It will start by examining the authoritative name servers and compare the records with the results from over 20 DNS servers worldwide." class="truncate MainItemKids" style="max-width: 150px;">
1128
                                    <img src="/gfx/dnspropagation.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="DNS propagation check" />DNS propagation check
1129
                                </a>
1130
                                
1131
                                <a href="/port-scan/" OnClick="addFromInfo(this, 'topmenu');" title="Scan any IP for any open ports. Includes probing functionality on DNS, SMTP, POP3, IMAP and HTTP protocols if open." class="truncate MainItemKids" style="max-width: 150px;">
1132
                                    <img src="/gfx/portscan.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Port scan + probeing" />Port scan + probeing
1133
                                </a>
1134
                                
1135
                                <a href="/whois/" OnClick="addFromInfo(this, 'topmenu');" title="Perform WHOIS and/or RDAP lookups on domains, IP addresses, and ASNs. Will output all available technical info, contact info, etc." class="truncate MainItemKids" style="max-width: 150px;">
1136
                                    <img src="/gfx/whois.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="WHOIS / RDAP lookup" />WHOIS / RDAP lookup
1137
                                </a>
1138
                                
1139
                                <a href="/http-request-tool/" OnClick="addFromInfo(this, 'topmenu');" title="Perform HTTP/HTTPS requests to any server" class="truncate MainItemKids" style="max-width: 150px;">
1140
                                    <img src="/gfx/httprequest.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="HTTP/S request tool" />HTTP/S request tool
1141
                                </a>
1142
                                
1143
                                <a href="/ssl-certificate-check/" OnClick="addFromInfo(this, 'topmenu');" title="Check details of your SSL certificate and the full chain of certificates." class="truncate MainItemKids" style="max-width: 150px;">
1144
                                    <img src="/gfx/sslcheck.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="TLS/SSL certificate check" />TLS/SSL certificate check<div class="betaMark">beta</div>
1145
                                </a>
1146
                                
1147
                                <a href="/dnsbl-blacklist-checker/" OnClick="addFromInfo(this, 'topmenu');" title="Check IP or domain against the most common e-mail blacklists." class="truncate MainItemKids" style="max-width: 150px;">
1148
                                    <img src="/gfx/dnsbl.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="E-mail DNSBL blacklist check" />E-mail DNSBL blacklist check
1149
                                </a>
1150
                                
1151
                                <a href="/reverse-dns-ptr-lookup/" OnClick="addFromInfo(this, 'topmenu');" title="Perform reverse DNS (rDNS/PTR) lookups of any IP." class="truncate MainItemKids" style="max-width: 150px;">
1152
                                    <img src="/gfx/rdns.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Reverse DNS" />Reverse DNS
1153
                                </a>
1154
                                
1155
                                <a href="/cidr/" OnClick="addFromInfo(this, 'topmenu');" title="IP to CIDR calculation tool with subnet info. The reverse, CIDR ranges to IP addresses, is also possible. Last but not least, it includes a tool for refactoring groups of IPs, domain names, and/or other CIDR ranges." class="truncate MainItemKids" style="max-width: 150px;">
1156
                                    <img src="/gfx/cidr.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="CIDR calculator" />CIDR calculator<div class="betaMark">beta</div>
1157
                                </a>
1158
                                
1159
                                <a href="/asndatabase/" OnClick="addFromInfo(this, 'topmenu');" title="A fully searchable database of ASN records provides comprehensive details on peers, announced prefixes, and Internet Exchange memberships. Including metadata such as name, website, logo, and statistics for each ASN. Searchable by name, ASN, IP, or CIDR." class="truncate MainItemKids" style="max-width: 150px;">
1160
                                    <img src="/gfx/asndatabase.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="ASN database lookup" />ASN database lookup<div class="betaMark">beta</div>
1161
                                </a>
1162
                                
1163
                                <a href="/whats-my-ip/" OnClick="addFromInfo(this, 'topmenu');" title="Check your own IP - both IPv4 and IPv6. Works as a connectivity test as well." class="truncate MainItemKids" style="max-width: 150px;">
1164
                                    <img src="/gfx/myip.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="What is my IPv4 and IPv6?" />What is my IPv4 and IPv6?
1165
                                </a>
1166
                                
1167
                                <a href="/geoip/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool GeoIP location of any IP and/or domain." class="truncate MainItemKids" style="max-width: 150px;">
1168
                                    <img src="/gfx/geoip.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="GeoIP location" />GeoIP location
1169
                                </a>
1170
                                
1171
                                <a href="/qrcode/" OnClick="addFromInfo(this, 'topmenu');" title="Turn any URL into a scanable QR code." class="truncate MainItemKids" style="max-width: 150px;">
1172
                                    <img src="/gfx/qrcode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="QR code generator" />QR code generator
1173
                                </a>
1174
                                
1175
                      </div>
1176
                  </li>
1177
                  <li class="hidden visible-xs text-left MainItem">
1178
                      <b>Dev tools</b><br /><div class="clearfix MainItemContentBox">
1179
                        
1180
                                <a href="/color-contrast/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool for checking the contrast/readability of two colors - and get hints for optimizing the contrast." class="truncate MainItemKids" style="max-width: 150px;">
1181
                                    <img src="/gfx/colorcontrast.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Color contrast checker" />Color contrast checker
1182
                                </a>
1183
                                
1184
                                <a href="/color-picker/" OnClick="addFromInfo(this, 'topmenu');" title="Pick any color - and see info on related colors, contrast colors and different shades." class="truncate MainItemKids" style="max-width: 150px;">
1185
                                    <img src="/gfx/colorpicker.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Color picker" />Color picker
1186
                                </a>
1187
                                
1188
                                <a href="/lorem-ipsum/" OnClick="addFromInfo(this, 'topmenu');" title="Lorem, ipsum generator, with the option of creating text's of different levels of complexity." class="truncate MainItemKids" style="max-width: 150px;">
1189
                                    <img src="/gfx/loremipsum.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Lorem ipsum generator" />Lorem ipsum generator
1190
                                </a>
1191
                                
1192
                                <a href="/urlencode/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool for URLencode and/or URLdecode of any string." class="truncate MainItemKids" style="max-width: 150px;">
1193
                                    <img src="/gfx/urlencode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="URL encode/decode" />URL encode/decode
1194
                                </a>
1195
                                
1196
                                <a href="/htmlencode/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool for HTMLencode and/or HTMLdecode of any string." class="truncate MainItemKids" style="max-width: 150px;">
1197
                                    <img src="/gfx/htmlencode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="HTML encode/decode" />HTML encode/decode
1198
                                </a>
1199
                                
1200
                                <a href="/base64encode/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool for BASE64 encoding af binary-to-text, and BASE64 decoding for text-to-binary." class="truncate MainItemKids" style="max-width: 150px;">
1201
                                    <img src="/gfx/base64encode.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="BASE64 encode/decode" />BASE64 encode/decode
1202
                                </a>
1203
                                
1204
                                <a href="/hashing/" OnClick="addFromInfo(this, 'topmenu');" title="Online tool for hash encoding using MD5, SHA-1, SHA256, SHA384, SHA512 and RIPEMD algorithms." class="truncate MainItemKids" style="max-width: 150px;">
1205
                                    <img src="/gfx/hashing.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Hash calculator (CRC64 - MD5 - SHA - RIPEMD)" />Hash calculator (CRC64 - MD5 - SHA - RIPEMD)
1206
                                </a>
1207
                                
1208
                      </div>
1209
                  </li>
1210
                  <li class="hidden visible-xs text-left MainItem">
1211
                      <b>Misc tools</b><br /><div class="clearfix MainItemContentBox">
1212
                        
1213
                                <a href="/password/" OnClick="addFromInfo(this, 'topmenu');" title="Create passwords of any complexity. Ready to copy and with phonetic nato codes for easy to read out loud." class="truncate MainItemKids" style="max-width: 150px;">
1214
                                    <img src="/gfx/password.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="Password generator" />Password generator
1215
                                </a>
1216
                                
1217
                                <a href="/world-clock/" OnClick="addFromInfo(this, 'topmenu');" title="Beautiful day/night map of the world, with markup of all major cities including local date and time." class="truncate MainItemKids" style="max-width: 150px;">
1218
                                    <img src="/gfx/worldclock.png?2023121801" height="20" width="20" border="0" style="margin-top: -3px; margin-right: 8px;" alt="World map, day/night + local time" />World map, day/night + local time<div class="betaMark">beta</div>
1219
                                </a>
1220
                                
1221
                      </div>
1222
                  </li>
1223
                    
1224
1225
1226
              </ul>
1227
1228
              <ul class="nav navbar-nav navbar-right" id="menuRight" >
1229
                <li class="hidden-xs">
1230
                    <a href="#"><i>CTRL+D to bookmark</i></a>
1231
                </li>
1232
                
1233
              </ul>
1234
1235
1236
            </div><!-- /.navbar-collapse -->
1237
              
1238
            <!-- innerlinks, for menu at top -->
1239
            <div class="znavbar-collapse collapse " style=" border-top: 1px solid #282828; margin-left: -15px; margin-right: -15px; text-align: center;" id="pageNavbarTop" aria-expanded="false" aria-controls="pageNavbarTop">
1240
                <div id="innerLinksTop" style="padding-top: 10px; padding-bottom: 10px;"></div>
1241
            </div>
1242
1243
1244
          </div><!-- /.container-fluid -->
1245
            
1246
            
1247
              
1248
1249
        </nav>
1250
                 
1251
1252
        <style>
1253
            /*expand content hover https://stackoverflow.com/questions/16214326/bootstrap-dropdown-with-hover*/
1254
            .dropdown:hover .dropdown-menu {
1255
                display: block;
1256
                margin-top: 0; /* remove the gap so it doesn't close */
1257
             }
1258
        </style>
1259
1260
    
1261
1262
1263
1264
1265
1266
1267
        
1268
1269
        
1270
            <!-- homescreen modals start -->
1271
1272
1273
            <script>
1274
                docReady(function () {
1275
                    if (navigator.userAgent.indexOf("Android") > -1) {
1276
                        //$("#webappTop").css("display", "block");
1277
                        $("#webappInnerAndroid").css("display", "block");
1278
                    }
1279
                    else if (navigator.userAgent.indexOf("iPhone") > -1) {
1280
                        //$("#webappTop").css("display", "block");
1281
                        $("#webappInnerIphone").css("display", "block");
1282
                    }
1283
                    else {
1284
                    }
1285
                });
1286
            </script>
1287
1288
1289
            <!-- Modal -->
1290
            <div class="modal fade" id="homescreenModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
1291
              <div class="modal-dialog" role="document">
1292
                <div class="modal-content">
1293
                  <div class="modal-header">
1294
                    <h5 class="modal-title" id="exampleModalLabel">Add to homescreen</h5>
1295
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1296
                      <span aria-hidden="true">&times;</span>
1297
                    </button>
1298
                  </div>
1299
                  <div class="modal-body">
1300
1301
                        <div id="webappInnerIphone" style="display: none;">
1302
                            Tap the 'Share button' at the bottom of the screen:<br /><br />
1303
                
1304
                            <center><img class="lazyload" data-src="/addtohomescreen-ios-1.png" style="width: 80%; border: 1px solid #555; height: auto;" /></center>
1305
                            <br /><br />
1306
1307
                            Scroll down the list, and select 'Add to Home Screen':<br /><br />
1308
                            <center><img class="lazyload" data-src="/addtohomescreen-ios-2.png" style="width: 80%; border: 1px solid #555; height: auto;" /></center>
1309
1310
                        </div>
1311
            
1312
                        <div id="webappInnerAndroid" style="display: none;">
1313
                            Tap the menu icon (3 dots - upper right-hand corner):<br /><br />
1314
                
1315
                            <center><img class="lazyload" data-src="/addtohomescreen-android-1.png" style="width: 80%; border: 1px solid #555; height: auto;" /></center>
1316
                            <br /><br />
1317
1318
                            and select 'Add to homescreen'.:<br /><br />
1319
                            <center><img class="lazyload" data-src="/addtohomescreen-android-2.png" style="width: 80%; border: 1px solid #555; height: auto;" /></center>
1320
1321
1322
                        </div>
1323
1324
                  </div>
1325
                  <div class="modal-footer" style="text-align: center;">
1326
                    <button type="button" class="btn btn-primary" data-dismiss="modal">Okay thanks - got it!</button>
1327
                  </div>
1328
                </div>
1329
              </div>
1330
            </div>
1331
1332
            <!-- homescreen modals end -->
1333
1334
        
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
        <div class="pageContentWrapper">
1345
          <div class="container">
1346
1347
1348
                
1349
1350
1351
    
1352
<div class="row ">
1353
1354
        
1355
1356
1357
        <div class="col-xs-12 col-md-8 col-xl-8 pull-right resultCol">
1358
        
1359
            
1360
            
1361
            
1362
<div class="row ">
1363
                <div class=" col-sm-12 hidden visible-xs visible-sm">
1364
                    <br /><br />
1365
                    <div id="innerlinks"></div>
1366
                </div>
1367
            </div>
1368
1369
1370
            
1371
            
1372
<div class="row ">
1373
                    <div class=" col-md-12 ">
1374
1375
                        <h3 innerlink>The tools</h3>
1376
1377
1378
                        <div class="row "><div class="grid">
1379
                            <div class="grid-sizer col-xs-12 col-sm-6 col-md-6 col-lg-4"></div>
1380
                            
1381
1382
                                        <div class="grid-item col-xs-12 col-sm-12 col-md-12 col-lg-8"><div class="grid-item-content--big"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 15px; xline-height: 1;">
1383
                                            <table cellspacing="0" cellpadding="0" border="0">
1384
                                                <tr>
1385
                                                    <td valign="top" class="hidden-xs"><img src="gfx/dnslookup.png?2023121801" height0="60" width="60" border="0" style="margin-right: 10px;"></td>
1386
                                                    <td>
1387
                                                        <a href="/dns-lookup/" OnClick="addFromInfo(this, 'frontpagelg'); " style="color: #fff; text-decoration: none;">
1388
                                                        <h4 style="margin: 0px;">DNS lookup<small></small></h4>
1389
                                                        <img src="gfx/dnslookup.png?2023121801" height0="60" width="60" border="0" style="margin-left: 10px; margin-bottom: 10px; float: right;" class="hidden visible-xs">
1390
                                                        DNS lookup / nslookup / DIG of DNS records. An online tool for DNS lookups. By default recursive lookups querying the authoritative name servers. Lookups on specific DNS resolvers are also possible. Additionally, it will look up secondary records and output a full log of what was done on a technical level.
1391
                                                        </a>
1392
                                                    </td>
1393
                                                </tr>
1394
                                                <tr>
1395
                                                    <td class="hidden-xs">&nbsp;</td>
1396
                                                    <td>
1397
                                                        
1398
1399
                                                    </td>
1400
                                                </tr>
1401
                                            </table>
1402
                                        </div></div></div></div>
1403
1404
                                    
1405
1406
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content--medium"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1407
                                            <table cellspacing="0" cellpadding="0" border="0">
1408
                                                <tr>
1409
                                                    <td valign="top" class="hidden-xs"><img src="gfx/dnspropagation.png" height="45" width="45" border="0" style="margin-right: 5px; margin-top: 5px; margin-bottom: 5px;"></td>
1410
                                                    <td>
1411
                                                        <img src="gfx/dnspropagation.png?2023121801" height="45" width="45" border="0" style="margin-left: 5px; margin-top: 5px; margin-bottom: 5px; float: right;" class="hidden visible-xs">
1412
                                                        <a href="/dns-propagation/" OnClick="addFromInfo(this, 'frontpagemd'); "" style="color: #fff; text-decoration: none;">
1413
                                                        <h5>DNS propagation check</h5>
1414
                                                        Check how DNS records are propagated throughout the world. It will start by examining the authoritative name servers and compare the records with the results from over 20 DNS servers worldwide.
1415
                                                        </a>
1416
                                                    </td>
1417
                                                </tr>
1418
                                            </table>
1419
                                        </div></div></div></div>
1420
1421
                                    
1422
1423
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1424
                                            <a href="/port-scan/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1425
                                            <h5>Port scan + probeing</h5>
1426
                                            <small>Scan any IP for any open ports. Includes probing functionality on DNS, SMTP, POP3, IMAP and HTTP protocols if open.</small>
1427
                                            </a>
1428
                                        </div></div></div></div>
1429
1430
                                    
1431
1432
                                        <div class="grid-item col-xs-12 col-sm-12 col-md-12 col-lg-8"><div class="grid-item-content--big"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 15px; xline-height: 1;">
1433
                                            <table cellspacing="0" cellpadding="0" border="0">
1434
                                                <tr>
1435
                                                    <td valign="top" class="hidden-xs"><img src="gfx/whois.png?2023121801" height0="60" width="60" border="0" style="margin-right: 10px;"></td>
1436
                                                    <td>
1437
                                                        <a href="/whois/" OnClick="addFromInfo(this, 'frontpagelg'); " style="color: #fff; text-decoration: none;">
1438
                                                        <h4 style="margin: 0px;">WHOIS / RDAP lookup<small></small></h4>
1439
                                                        <img src="gfx/whois.png?2023121801" height0="60" width="60" border="0" style="margin-left: 10px; margin-bottom: 10px; float: right;" class="hidden visible-xs">
1440
                                                        Perform WHOIS and/or RDAP lookups on domains, IP addresses, and ASNs. Will output all available technical info, contact info, etc.
1441
                                                        </a>
1442
                                                    </td>
1443
                                                </tr>
1444
                                                <tr>
1445
                                                    <td class="hidden-xs">&nbsp;</td>
1446
                                                    <td>
1447
                                                        
1448
1449
                                                    </td>
1450
                                                </tr>
1451
                                            </table>
1452
                                        </div></div></div></div>
1453
1454
                                    
1455
1456
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1457
                                            <a href="/http-request-tool/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1458
                                            <h5>HTTP/S request tool</h5>
1459
                                            <small>Perform HTTP/HTTPS requests to any server</small>
1460
                                            </a>
1461
                                        </div></div></div></div>
1462
1463
                                    
1464
1465
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content--medium"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1466
                                            <table cellspacing="0" cellpadding="0" border="0">
1467
                                                <tr>
1468
                                                    <td valign="top" class="hidden-xs"><img src="gfx/sslcheck.png" height="45" width="45" border="0" style="margin-right: 5px; margin-top: 5px; margin-bottom: 5px;"></td>
1469
                                                    <td>
1470
                                                        <img src="gfx/sslcheck.png?2023121801" height="45" width="45" border="0" style="margin-left: 5px; margin-top: 5px; margin-bottom: 5px; float: right;" class="hidden visible-xs">
1471
                                                        <a href="/ssl-certificate-check/" OnClick="addFromInfo(this, 'frontpagemd'); "" style="color: #fff; text-decoration: none;">
1472
                                                        <h5>TLS/SSL certificate check<div class="betaMark">beta</div></h5>
1473
                                                        Check details of your SSL certificate and the full chain of certificates.
1474
                                                        </a>
1475
                                                    </td>
1476
                                                </tr>
1477
                                            </table>
1478
                                        </div></div></div></div>
1479
1480
                                    
1481
1482
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1483
                                            <a href="/dnsbl-blacklist-checker/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1484
                                            <h5>E-mail DNSBL blacklist check</h5>
1485
                                            <small>Check IP or domain against the most common e-mail blacklists.</small>
1486
                                            </a>
1487
                                        </div></div></div></div>
1488
1489
                                    
1490
1491
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1492
                                            <a href="/reverse-dns-ptr-lookup/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1493
                                            <h5>Reverse DNS</h5>
1494
                                            <small>Perform reverse DNS (rDNS/PTR) lookups of any IP.</small>
1495
                                            </a>
1496
                                        </div></div></div></div>
1497
1498
                                    
1499
1500
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1501
                                            <a href="/color-contrast/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1502
                                            <h5>Color contrast checker</h5>
1503
                                            <small>Online tool for checking the contrast/readability of two colors - and get hints for optimizing the contrast.</small>
1504
                                            </a>
1505
                                        </div></div></div></div>
1506
1507
                                    
1508
1509
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1510
                                            <a href="/color-picker/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1511
                                            <h5>Color picker</h5>
1512
                                            <small>Pick any color - and see info on related colors, contrast colors and different shades.</small>
1513
                                            </a>
1514
                                        </div></div></div></div>
1515
1516
                                    
1517
1518
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1519
                                            <a href="/password/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1520
                                            <h5>Password generator</h5>
1521
                                            <small>Create passwords of any complexity. Ready to copy and with phonetic nato codes for easy to read out loud.</small>
1522
                                            </a>
1523
                                        </div></div></div></div>
1524
1525
                                    
1526
1527
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1528
                                            <a href="/lorem-ipsum/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1529
                                            <h5>Lorem ipsum generator</h5>
1530
                                            <small>Lorem, ipsum generator, with the option of creating text's of different levels of complexity.</small>
1531
                                            </a>
1532
                                        </div></div></div></div>
1533
1534
                                    
1535
1536
                                        <div class="grid-item col-xs-12 col-sm-12 col-md-12 col-lg-8"><div class="grid-item-content--big"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 15px; xline-height: 1;">
1537
                                            <table cellspacing="0" cellpadding="0" border="0">
1538
                                                <tr>
1539
                                                    <td valign="top" class="hidden-xs"><img src="gfx/cidr.png?2023121801" height0="60" width="60" border="0" style="margin-right: 10px;"></td>
1540
                                                    <td>
1541
                                                        <a href="/cidr/" OnClick="addFromInfo(this, 'frontpagelg'); " style="color: #fff; text-decoration: none;">
1542
                                                        <h4 style="margin: 0px;">CIDR calculator<small><div class="betaMark">beta</div></small></h4>
1543
                                                        <img src="gfx/cidr.png?2023121801" height0="60" width="60" border="0" style="margin-left: 10px; margin-bottom: 10px; float: right;" class="hidden visible-xs">
1544
                                                        IP to CIDR calculation tool with subnet info. The reverse, CIDR ranges to IP addresses, is also possible. Last but not least, it includes a tool for refactoring groups of IPs, domain names, and/or other CIDR ranges.
1545
                                                        </a>
1546
                                                    </td>
1547
                                                </tr>
1548
                                                <tr>
1549
                                                    <td class="hidden-xs">&nbsp;</td>
1550
                                                    <td>
1551
                                                        
1552
1553
                                                    </td>
1554
                                                </tr>
1555
                                            </table>
1556
                                        </div></div></div></div>
1557
1558
                                    
1559
1560
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content--medium"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1561
                                            <table cellspacing="0" cellpadding="0" border="0">
1562
                                                <tr>
1563
                                                    <td valign="top" class="hidden-xs"><img src="gfx/asndatabase.png" height="45" width="45" border="0" style="margin-right: 5px; margin-top: 5px; margin-bottom: 5px;"></td>
1564
                                                    <td>
1565
                                                        <img src="gfx/asndatabase.png?2023121801" height="45" width="45" border="0" style="margin-left: 5px; margin-top: 5px; margin-bottom: 5px; float: right;" class="hidden visible-xs">
1566
                                                        <a href="/asndatabase/" OnClick="addFromInfo(this, 'frontpagemd'); "" style="color: #fff; text-decoration: none;">
1567
                                                        <h5>ASN database lookup<div class="betaMark">beta</div></h5>
1568
                                                        A fully searchable database of ASN records provides comprehensive details on peers, announced prefixes, and Internet Exchange memberships. Including metadata such as name, website, logo, and statistics for each ASN. Searchable by name, ASN, IP, or CIDR.
1569
                                                        </a>
1570
                                                    </td>
1571
                                                </tr>
1572
                                            </table>
1573
                                        </div></div></div></div>
1574
1575
                                    
1576
1577
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1578
                                            <a href="/world-clock/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1579
                                            <h5>World map, day/night + local time<div class="betaMark">beta</div></h5>
1580
                                            <small>Beautiful day/night map of the world, with markup of all major cities including local date and time.</small>
1581
                                            </a>
1582
                                        </div></div></div></div>
1583
1584
                                    
1585
1586
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1587
                                            <a href="/urlencode/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1588
                                            <h5>URL encode/decode</h5>
1589
                                            <small>Online tool for URLencode and/or URLdecode of any string.</small>
1590
                                            </a>
1591
                                        </div></div></div></div>
1592
1593
                                    
1594
1595
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1596
                                            <a href="/htmlencode/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1597
                                            <h5>HTML encode/decode</h5>
1598
                                            <small>Online tool for HTMLencode and/or HTMLdecode of any string.</small>
1599
                                            </a>
1600
                                        </div></div></div></div>
1601
1602
                                    
1603
1604
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1605
                                            <a href="/base64encode/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1606
                                            <h5>BASE64 encode/decode</h5>
1607
                                            <small>Online tool for BASE64 encoding af binary-to-text, and BASE64 decoding for text-to-binary.</small>
1608
                                            </a>
1609
                                        </div></div></div></div>
1610
1611
                                    
1612
1613
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1614
                                            <a href="/hashing/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1615
                                            <h5>Hash calculator (CRC64 - MD5 - SHA - RIPEMD)</h5>
1616
                                            <small>Online tool for hash encoding using MD5, SHA-1, SHA256, SHA384, SHA512 and RIPEMD algorithms.</small>
1617
                                            </a>
1618
                                        </div></div></div></div>
1619
1620
                                    
1621
1622
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1623
                                            <a href="/whats-my-ip/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1624
                                            <h5>What is my IPv4 and IPv6?</h5>
1625
                                            <small>Check your own IP - both IPv4 and IPv6. Works as a connectivity test as well.</small>
1626
                                            </a>
1627
                                        </div></div></div></div>
1628
1629
                                    
1630
1631
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1632
                                            <a href="/geoip/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1633
                                            <h5>GeoIP location</h5>
1634
                                            <small>Online tool GeoIP location of any IP and/or domain.</small>
1635
                                            </a>
1636
                                        </div></div></div></div>
1637
1638
                                    
1639
1640
                                        <div class="grid-item col-xs-12 col-sm-6 col-md-6 col-lg-4"><div class="grid-item-content"><div class="panel panel-default"><div class="panel-body" style="background-color: #181818; padding: 10px; line-height: 1;">
1641
                                            <a href="/qrcode/" OnClick="addFromInfo(this, 'frontpagesm'); " style="color: #fff; text-decoration: none;">
1642
                                            <h5>QR code generator</h5>
1643
                                            <small>Turn any URL into a scanable QR code.</small>
1644
                                            </a>
1645
                                        </div></div></div></div>
1646
1647
                                    
1648
                        </div></div>
1649
                    </div>
1650
                </div>
1651
1652
                <script src="/css/masonry.pkgd.js?2023121801"></script>
1653
                <style>
1654
                    .grid-item-content {
1655
                    }
1656
1657
                    .grid-item-content img {
1658
                    }
1659
1660
                    .grid-item-content--big {
1661
                    }
1662
1663
                    .grid-item-content--big2 {
1664
                    }
1665
1666
                    .grid-item-content--big .panel-body {
1667
                        padding-top: 30px !important;
1668
                        padding-bottom: 30px !important;
1669
                    }
1670
1671
                    .grid-item-content--medium .panel-body {
1672
                        padding-top: 30px !important;
1673
                        padding-bottom: 30px !important;
1674
                    }
1675
1676
1677
                    .grid-item .panel-body table {
1678
                        background-color: transparent;
1679
                    }
1680
                    .grid-item .panel:hover,
1681
                    .grid-item .panel-body:hover
1682
                    {
1683
                        background-color: rgba(255,255,255,0.1) !important;
1684
                        transition: all 0.5s ease;
1685
                    }
1686
                </style>
1687
1688
                <script>
1689
                    function mason() {
1690
                        var elem = document.querySelector('.grid');
1691
                        var msnry = new Masonry(elem, {
1692
                            // options
1693
                            itemSelector: '.grid-item',
1694
                            columnWidth: '.grid-sizer',
1695
                            percentPosition: true
1696
                        });
1697
1698
                        //alert("!");
1699
1700
                    }
1701
1702
                    //setTimeout("mason();", 1000);
1703
                    docReady(function () {
1704
                        mason();
1705
                    });
1706
1707
                </script>
1708
1709
1710
            
1711
1712
1713
        </div>
1714
1715
    
1716
        
1717
1718
1719
1720
1721
        
1722
<div class="col-xs-12 col-md-4 col-xl-4 pull-right queryCol ">
1723
            
1724
            <h1 innerlink>What is iamroot.tech?</h1>
1725
            
1726
            <div class="panel panel-default"><div class="panel-body">
1727
                iamroot.tech is a set of advanced and detailed online available tools centered around admin,
1728
                development and GUI/UI/UX tasks.<br /><br />
1729
1730
                The need for this grew out of my day job as a fullstack developer and systems administrator.
1731
                I needed a set of fast and reliable tools, with advanced options for me to tweak, clear
1732
                and understandable results, and without having to deal with tons of ads and useless info
1733
                added, just to make it look fancy.<br /><br />
1734
1735
                The tools have been extremely useful to me , and I hope they will serve you as well.<br /><br />
1736
1737
                Best regards<br />
1738
                Flemming
1739
                
1740
            </div></div>
1741
            
1742
            
1743
            <div class="x-hidden-sm x-hidden-xs x-discrete"> <h3 innerlink>Feedback</h3><div class="panel panel-default"><div class="panel-body">These tools are still in active development. If you have any kind of feedback, please let me know. Send me an e-mail on iamrootdottech(a)gmail.com.</div></div></div>
1744
1745
            
1746
1747
1748
        </div>
1749
1750
1751
1752
1753
    </div>
1754
        
1755
1756
1757
1758
1759
        
1760
1761
1762
    
1763
1764
1765
    
1766
1767
1768
1769
          </div>
1770
        </div>
1771
1772
1773
1774
1775
1776
        
1777
1778
1779
        <style>
1780
            .footer.mainfooter {
1781
                display: block;
1782
            }
1783
            
1784
            .footer.smallfooter {
1785
                display: none;
1786
            }
1787
1788
            .smallfooter .footer.mainfooter {
1789
                display: none;
1790
            }
1791
            
1792
            .smallfooter .footer.smallfooter {
1793
                display: block;
1794
            }
1795
        </style>
1796
        
1797
1798
        <div class="container footer mainfooter" id="footer" innerlink="Footer">
1799
            <div class=" discrete ">
1800
                
1801
                <hr style="margin-bottom: 15px; margin-top: 15px;" />
1802
                
1803
                
1804
                <div class="panel panel-default " style="border-radius: 0px;"><div class="panel-body text-left">
1805
    
1806
1807
                    <div class="row">
1808
                        <div class="col-md-6 col-lg-4 hidden-xs hidden-sm" style="border-right: 1px solid rgba(255,255,255,.1);">
1809
1810
                            <h4>The tools of iamroot.tech</h4>
1811
                            <a href="/dns-lookup/" OnClick="addFromInfo(this, 'footertools');" title="DNS lookup / nslookup / DIG of DNS records. An online tool for DNS lookups. By default recursive lookups querying the authoritative name servers. Lookups on specific DNS resolvers are also possible. Additionally, it will look up secondary records and output a full log of what was done on a technical level." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">DNS lookup</a>&nbsp;&nbsp;&nbsp;<a href="/dns-propagation/" OnClick="addFromInfo(this, 'footertools');" title="Check how DNS records are propagated throughout the world. It will start by examining the authoritative name servers and compare the records with the results from over 20 DNS servers worldwide." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">DNS propagation check</a>&nbsp;&nbsp;&nbsp;<a href="/port-scan/" OnClick="addFromInfo(this, 'footertools');" title="Scan any IP for any open ports. Includes probing functionality on DNS, SMTP, POP3, IMAP and HTTP protocols if open." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">Port scan + probeing</a>&nbsp;&nbsp;&nbsp;<a href="/whois/" OnClick="addFromInfo(this, 'footertools');" title="Perform WHOIS and/or RDAP lookups on domains, IP addresses, and ASNs. Will output all available technical info, contact info, etc." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">WHOIS / RDAP lookup</a>&nbsp;&nbsp;&nbsp;<a href="/http-request-tool/" OnClick="addFromInfo(this, 'footertools');" title="Perform HTTP/HTTPS requests to any server" class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">HTTP/S request tool</a>&nbsp;&nbsp;&nbsp;<a href="/ssl-certificate-check/" OnClick="addFromInfo(this, 'footertools');" title="Check details of your SSL certificate and the full chain of certificates." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">TLS/SSL certificate check</a>&nbsp;&nbsp;&nbsp;<a href="/dnsbl-blacklist-checker/" OnClick="addFromInfo(this, 'footertools');" title="Check IP or domain against the most common e-mail blacklists." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">E-mail DNSBL blacklist check</a>&nbsp;&nbsp;&nbsp;<a href="/reverse-dns-ptr-lookup/" OnClick="addFromInfo(this, 'footertools');" title="Perform reverse DNS (rDNS/PTR) lookups of any IP." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">Reverse DNS</a>&nbsp;&nbsp;&nbsp;<a href="/color-contrast/" OnClick="addFromInfo(this, 'footertools');" title="Online tool for checking the contrast/readability of two colors - and get hints for optimizing the contrast." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">Color contrast checker</a>&nbsp;&nbsp;&nbsp;<a href="/color-picker/" OnClick="addFromInfo(this, 'footertools');" title="Pick any color - and see info on related colors, contrast colors and different shades." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">Color picker</a>&nbsp;&nbsp;&nbsp;<a href="/password/" OnClick="addFromInfo(this, 'footertools');" title="Create passwords of any complexity. Ready to copy and with phonetic nato codes for easy to read out loud." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">Password generator</a>&nbsp;&nbsp;&nbsp;<a href="/lorem-ipsum/" OnClick="addFromInfo(this, 'footertools');" title="Lorem, ipsum generator, with the option of creating text's of different levels of complexity." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">Lorem ipsum generator</a>&nbsp;&nbsp;&nbsp;<a href="/cidr/" OnClick="addFromInfo(this, 'footertools');" title="IP to CIDR calculation tool with subnet info. The reverse, CIDR ranges to IP addresses, is also possible. Last but not least, it includes a tool for refactoring groups of IPs, domain names, and/or other CIDR ranges." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">CIDR calculator</a>&nbsp;&nbsp;&nbsp;<a href="/asndatabase/" OnClick="addFromInfo(this, 'footertools');" title="A fully searchable database of ASN records provides comprehensive details on peers, announced prefixes, and Internet Exchange memberships. Including metadata such as name, website, logo, and statistics for each ASN. Searchable by name, ASN, IP, or CIDR." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">ASN database lookup</a>&nbsp;&nbsp;&nbsp;<a href="/world-clock/" OnClick="addFromInfo(this, 'footertools');" title="Beautiful day/night map of the world, with markup of all major cities including local date and time." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">World map, day/night + local time</a>&nbsp;&nbsp;&nbsp;<a href="/urlencode/" OnClick="addFromInfo(this, 'footertools');" title="Online tool for URLencode and/or URLdecode of any string." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">URL encode/decode</a>&nbsp;&nbsp;&nbsp;<a href="/htmlencode/" OnClick="addFromInfo(this, 'footertools');" title="Online tool for HTMLencode and/or HTMLdecode of any string." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">HTML encode/decode</a>&nbsp;&nbsp;&nbsp;<a href="/base64encode/" OnClick="addFromInfo(this, 'footertools');" title="Online tool for BASE64 encoding af binary-to-text, and BASE64 decoding for text-to-binary." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">BASE64 encode/decode</a>&nbsp;&nbsp;&nbsp;<a href="/hashing/" OnClick="addFromInfo(this, 'footertools');" title="Online tool for hash encoding using MD5, SHA-1, SHA256, SHA384, SHA512 and RIPEMD algorithms." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">Hash calculator (CRC64 - MD5 - SHA - RIPEMD)</a>&nbsp;&nbsp;&nbsp;<a href="/whats-my-ip/" OnClick="addFromInfo(this, 'footertools');" title="Check your own IP - both IPv4 and IPv6. Works as a connectivity test as well." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">What is my IPv4 and IPv6?</a>&nbsp;&nbsp;&nbsp;<a href="/geoip/" OnClick="addFromInfo(this, 'footertools');" title="Online tool GeoIP location of any IP and/or domain." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">GeoIP location</a>&nbsp;&nbsp;&nbsp;<a href="/qrcode/" OnClick="addFromInfo(this, 'footertools');" title="Turn any URL into a scanable QR code." class="btn btn-xs btn-default" style="margin-right: 5px; margin-bottom: 5px;">QR code generator</a>&nbsp;&nbsp;&nbsp;
1812
1813
                        </div>
1814
                        <div class="col-md-6 col-lg-4 hidden-xs hidden-sm hidden-md " style="border-right: 1px solid rgba(255,255,255,.1);">
1815
                            <h4 class="truncate">Changelog</h4>
1816
                            <ul>
1817
                             
1818
                                        <li><a href="https://iamroot.tech/asndatabase/the-asn-stats-report.aspx" OnClick="addFromInfo(this, 'footerchangelog');" title="I am pleased to introduce The ASN Stats Report - a weekly updated report on the ASN database, detailing active/inactive ASNs, peer statistics, and IP statistics (including stats on IPv6 adoption). Updated weekly on Fridays, it includes country-by-country statistics and download options." class="discrete small">18-03-2024: ASN statistics</a></li>
1819
                                        
1820
                                        <li><a href="https://iamroot.tech/color-contrast/" OnClick="addFromInfo(this, 'footerchangelog');" title="Some minor tweaks has been made on the color contrast tool. Thanks to Joe M for the heads up." class="discrete small">18-03-2024: Minor UI tweaks on the color contrast tool</a></li>
1821
                                        
1822
                                        <li><a href="https://iamroot.tech/asndatabase/" OnClick="addFromInfo(this, 'footerchangelog');" title="The details of Internet exchanges (IXes) have been updated where available. Information on individual ASN/IX connections and port speeds has been added, alongside total capacity per IX." class="discrete small">29-02-2024: ASN IX updates (port speeds and capacity)</a></li>
1823
                                        
1824
                                        <li><a href="/" OnClick="addFromInfo(this, 'footerchangelog');" title="The server at Nuremberg suffered a failure earlier today. It was fixed, and I am looking further into the issue. Sorry for the inconvenience." class="discrete small">29-02-2024: Nuremberg server crash</a></li>
1825
                                        
1826
                                        <li><a href="https://iamroot.tech/cidr/" OnClick="addFromInfo(this, 'footerchangelog');" title="An IPv6-specific error snuck into the CIDR tool. It has been fixed. I apologize for any inconvenience on this matter. Sorry." class="discrete small">29-02-2024: IPv6 issue on the CIDR tool has been fixed</a></li>
1827
                                        
1828
                                        <li><a href="https://iamroot.tech/port-scan/" OnClick="addFromInfo(this, 'footerchangelog');" title="Check of open ports used by Veeam backup has been updated - adding port 9393, 9392, 9401, 9419 and 10001." class="discrete small">29-02-2024: Port scan of Veeam services</a></li>
1829
                                        
1830
                                        <li><a href="/" OnClick="addFromInfo(this, 'footerchangelog');" title="The capcha checks have been tweaked a bit. Some hard limits on specific tools have been implemented to accommodate some of the limits we have to meet on, for instance, port scans and WHOIS lookups." class="discrete small">29-02-2024: Tweaked capcha</a></li>
1831
                                        
1832
                                        <li><a href="/" OnClick="addFromInfo(this, 'footerchangelog');" title="A tryit-tool for working with the API endpoints has been implemented. This allows for you to play around with the API straight away." class="discrete small">24-02-2024: API tryit-feature has been implemented</a></li>
1833
                                        
1834
                                        <li><a href="https://iamroot.tech/port-scan/" OnClick="addFromInfo(this, 'footerchangelog');" title="Check of WAN access to port 8006 (Proxmox remote management) has been added to the port scan tool." class="discrete small">15-02-2024: Check of port 8006 (Proxmox) has been added to the port scan tool</a></li>
1835
                                        
1836
                                        <li><a href="https://iamroot.tech/port-scan/" OnClick="addFromInfo(this, 'footerchangelog');" title="Major remake of the port scan UI. All ports are now categorized, and each result is prefixed with a summary." class="discrete small">10-02-2024: Port scan UI improvements</a></li>
1837
                                        
1838
                            </ul>
1839
1840
1841
                        </div>
1842
                        <div class="col-sm-12 col-md-6 col-lg-4 ">
1843
                            <h4>Newsletter</h4>
1844
                            <div class="discrete">
1845
                                Bi-weekly (at most) with updates, changelog and info from the website. Just
1846
                                straight to the point info - no BS! Sign up right here, or <a href="/about/newsletter" >read more about the iamroot.tech newsletter</A>.<br />
1847
                            </div>
1848
1849
1850
                            
1851
                            
1852
                
1853
                            <div class="row">
1854
1855
                                <div class="col-sm-6 col-lg-12 col-xl-6" style="margin-top: 10px;">
1856
                                    <a href="https://iamroot.tech/about/0auth/goto-google.aspx?L2Fib3V0L25ld3NsZXR0ZXIvc2lnbnVwLWZyb20tMGF1dGguYXNweA%3d%3d" class="btn btn-md btn-default " style="width: 100%;" title="Sign up using facebook"><div style="display: inline-block;"><img class="lazyload" data-src="/about/0auth/google.png?2023121801" style="float: left; margin-right: 5px;" height="24" width="24" class="discrete" alt="Signup using google">Signup using Google</div></a>
1857
                                </div>
1858
1859
                                <div class="col-sm-6 col-lg-12 col-xl-6" style="margin-top: 10px;">
1860
                                    <a href="https://iamroot.tech/about/0auth/goto-github.aspx?L2Fib3V0L25ld3NsZXR0ZXIvc2lnbnVwLWZyb20tMGF1dGguYXNweA%3d%3d" class="btn btn-md btn-default " style="width: 100%;" title="Sign up using github"><div style="display: inline-block;"><img class="lazyload" data-src="/about/0auth/github.png?2023121801" style="float: left; margin-right: 5px;" height="24" width="24" class="discrete" alt="Signup using microsoft">Signup using Github</div></a>
1861
                                </div>
1862
                                
1863
                                <div class="col-sm-12 small discrete text-center" style="margin-top: 10px; margin-bottom: 10px;">
1864
                                    Other options: <a href="https://iamroot.tech/about/0auth/goto-microsoft.aspx?L2Fib3V0L25ld3NsZXR0ZXIvc2lnbnVwLWZyb20tMGF1dGguYXNweA%3d%3d">Signup using Microsoft</a> or <a href="https://iamroot.tech/about/0auth/goto-facebook.aspx?L2Fib3V0L25ld3NsZXR0ZXIvc2lnbnVwLWZyb20tMGF1dGguYXNweA%3d%3d">Signup using Facebook</a>.
1865
                                </div>
1866
1867
                                <div class="col-xs-5"><hr /></div>
1868
                                <div class="col-xs-2 text-center">OR</div>
1869
                                <div class="col-xs-5"><hr /></div>
1870
                            </div>
1871
1872
1873
1874
                            <form action="/about/newsletter/default.aspx" method="post">
1875
                            <div class="row">
1876
                                <div class="form-group clearfix">
1877
                                    <div class="col-xs-8 col-sm-8 col-md-8 col-xl-8">
1878
                                        <input type="email" name="email" class="form-control input-md " placeholder="Input your e-mail" value="">
1879
                                    </div>
1880
                                    <div class="col-xs-4 col-sm-4 col-md-4 col-xl-4">
1881
                                        <input type="submit" class="form-control input-md btn btn-default btn-md" value="GO!">
1882
                                    </div>
1883
                                </div>
1884
                            </div>
1885
                            </form>
1886
1887
1888
1889
1890
1891
                        </div>
1892
                    </div>
1893
1894
1895
1896
                </div></div>
1897
                
1898
            </div>
1899
1900
            <div class="row small">
1901
1902
                <div class="col-md-4">
1903
1904
                    No personal information gathered anywhere. E-mail may be used for login and/or newsletter - will not be sold or used by anyone else but iamroot.tech.
1905
                    Cookies are in use for statistical and useability purposes.
1906
                    Trademarks property of their respective owners. A <a href="/about/privacy-policy">privacy policy</a> and
1907
                    <a href="/about/terms-conditions">terms and conditions</a> is availible if you like.<br />
1908
                    <br />
1909
1910
                </div>
1911
                <div class="col-md-4 text-center blueLinks">
1912
                    <a href="mailto: iamrootdottech@gmail.com">iamrootdottech@gmail.com</a><br />
1913
                    Bundgaard - Løvenørnsgade 56, 2tv - DK-8700 Horsens - Denmark
1914
                    <br />
1915
                    <br />
1916
                </div>
1917
                <div class="col-md-4 text-right blueLinks">
1918
                    Shoutouts and credits to:
1919
                        <a href="https://getbootstrap.com/" target="_blank">Bootstrap</a>,
1920
                        <a href="https://jquery.com/" target="_blank">jQuery</a>,
1921
                        <a href="https://www.bootstrap-live-customizer.com/" target="_blank">Bootstrap live customizer by Virtuosoft</a>,
1922
                        <a href="https://dnsclient.michaco.net/" target="_blank">DnsClient.NET by MichaCo</a>,
1923
                        <a href="https://www.appelsiini.net/projects/lazyload/" target="_blank">LazyLoad by Mika Tuupola</a>,
1924
                        <a href="https://www.iana.org/time-zones" target="_blank">the Olson tz database by IANA</a>,
1925
                        <a href="https://visibleearth.nasa.gov/" target="_blank">Visible earth by NASA</a>,
1926
                        <a href="https://dev.maxmind.com/geoip/geolite2-free-geolocation-data?lang=en" target="_blank">GeoLite2 by MaxMind</a>,
1927
                        <a href="https://github.com/huysentruitw/barcoder" target="_blank">Barcoder by Wouter Huysentruit</a>,
1928
                        <a href="https://icons8.com/" target="_blank">ICONS8</a>.<br />
1929
                        <a href="https://github.com/alenaksu/json-viewer" target="_blank">json-viewer by alenaksu</a>.<br />
1930
                    <br />
1931
                </div>
1932
            </div>
1933
1934
1935
        </div>
1936
    
1937
1938
1939
        <div class="container footer smallfooter" id="footer" innerlink="Footer">
1940
            <div class=" discrete ">
1941
                
1942
1943
                
1944
                <div class="row small">
1945
                    <div class="col-md-offset-3 col-md-7 text-center ">
1946
                        <hr style="margin-bottom: 15px; margin-top: 15px;" />
1947
1948
1949
                        <a href="mailto: iamrootdottech@gmail.com" class="blueLinks">iamrootdottech@gmail.com</a><br />
1950
                        Bundgaard - Løvenørnsgade 56, 2tv - DK-8700 Horsens - Denmark
1951
                        <br />
1952
                        <br />
1953
1954
1955
                        No personal information gathered anywhere. E-mail may be used for login and/or newsletter - will not be sold or used by anyone else but iamroot.tech.
1956
                        Cookies are in use for statistical and useability purposes.
1957
                        Trademarks property of their respective owners. A <a href="/about/privacy-policy">privacy policy</a> and
1958
                        <a href="/about/terms-conditions">terms and conditions</a> is availible if you like.<br />
1959
                        <br />
1960
1961
                    </div>
1962
                </div>
1963
            </div>
1964
1965
1966
        </div>
1967
    
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
            <script>
1978
1979
                docReady(function () {
1980
                    $('[data-toggle="tooltip"]').tooltip();
1981
1982
                    //$('[data-toggle="popover"]').popover();
1983
1984
                    $('[data-toggle="popover"]').popover({
1985
                        html: true,
1986
                        animation: false,
1987
                        trigger: 'manual',
1988
                        content: function (e) {
1989
                            var content = $(this).attr("data-content-elmid");
1990
                            console.log(content);
1991
                            if ($("#" + content).length) {
1992
                                content = $("#" + content).html();
1993
                            }
1994
                            return content;
1995
                        },
1996
                        title: function () {
1997
                            var title = $(this).attr("data-title");
1998
                            //return $(title).children(".popover-heading").html();
1999
                            return title;
2000
                        },
2001
                        placement: function () {
2002
                            var my = this.$element.attr('data-placement')
2003
                            return my;
2004
                        }
2005
                    })
2006
                        .on("mouseenter", function () {
2007
                            var _this = this;
2008
                            $(_this).removeClass("popLeave");
2009
                            $(this).popover("show");
2010
                            $(".popover").on("mouseleave", function () {
2011
                                $(_this).popover('hide');
2012
                            });
2013
                        })
2014
                        .on("mouseleave", function () {
2015
                            var _this = this;
2016
                            $(_this).addClass("popLeave");
2017
                            setTimeout(function () {
2018
                                //if (!$(".popover:hover").length) {
2019
                                if ((!$(".popover:hover").length) && ($(_this).hasClass("popLeave"))) {
2020
                                    $(_this).popover("hide");
2021
                                    $(_this).removeClass("popLeave");
2022
                                }
2023
                            }, 300);
2024
                        });
2025
                    });
2026
2027
2028
            </script>
2029
2030
            <style>
2031
                .popLeave {
2032
                    /*background-color: #f00 !important;*/
2033
                }
2034
            </style>
2035
2036
2037
2038
2039
    
2040
2041
2042
2043
    
2044
        <!-- innerlinks and auto scroll start -->
2045
2046
2047
        <script>
2048
            docReady(function () {
2049
                scrollToElementId('MainContent_resultOuter');
2050
2051
            });
2052
2053
            function scrollToElementId(elmId) {
2054
                if (document.getElementById(elmId)) {
2055
                    scrollToElement(document.getElementById(elmId));
2056
                }
2057
2058
                return (false);
2059
            }
2060
2061
2062
            function scrollToElement(element) {
2063
                if (element) {
2064
2065
                    // https://stackoverflow.com/questions/24665602/scrollintoview-scrolls-just-too-far
2066
                    const yOffset = -30; //-85;
2067
                    var y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
2068
2069
                    if (($(".navbar").length) && ($(".navbar").position().top < 10)) {
2070
                        y -= $(".navbar").height();
2071
                    }
2072
                    else {
2073
                        y -= 50;
2074
                    }
2075
                    
2076
2077
                    if (($("#pageNavbarTop").length) && ($("#pageNavbarTop").is(":visible"))) {
2078
                        //y -= $("#pageNavbarTop").height();
2079
                    }
2080
2081
2082
                    var vH = (window.innerHeight || document.documentElement.clientHeight);
2083
                    //const vH = 300; //element must be within upper 200px
2084
                    vH = vH / 2; //upper half
2085
2086
                    const isVisible = (element.getBoundingClientRect().top > 0) && (element.getBoundingClientRect().top < vH);
2087
2088
                    if (!isVisible) {
2089
                        //window.scrollTo({ top: y, behavior: 'smooth' });
2090
2091
                        $('html, body').stop(true, true).delay(100).animate({
2092
                            scrollTop: y
2093
                        }, 400);
2094
                    }
2095
2096
                    
2097
                    
2098
                }
2099
2100
                return (false);
2101
            }
2102
2103
2104
            docReady(function () {
2105
2106
                if ($("#innerlinks").length > 0) {
2107
2108
                    var innerLinksTopHtml = "";
2109
                    var innerLinksBottomHtml = "";
2110
2111
                    var showAbout = true;
2112
2113
                    $("[innerlink]").each(function () {
2114
2115
                        if ($(this).is(":visible")) {
2116
2117
                            var name = $(this).html();
2118
                            if ($(this).attr("innerlink").length > 0) {
2119
                                name = $(this).attr("innerlink");
2120
                            }
2121
2122
                            var id = $(this).attr("id");
2123
                            if (id == undefined) {
2124
                                $(this).attr("id", name);
2125
                                id = $(this).attr("id");
2126
                            }
2127
2128
                            if (innerLinksTopHtml.length > 0) {
2129
                                innerLinksTopHtml += "&nbsp;-&nbsp;";
2130
                            }
2131
2132
                            if (name != "Query") {
2133
                                innerLinksTopHtml += "<a href=\"#\" onclick=\"scrollToElementId('" + id + "'); addFromInfo(this, 'innerlink'); return (false);\">" + name + "</a>";
2134
                            }
2135
2136
                            if (name == "About") {
2137
                                showAbout = false;
2138
                            }
2139
2140
                            innerLinksBottomHtml += "<a href=\"#\" class=\"btn-xs btn-default\" onclick=\"scrollToElementId('" + id + "'); addFromInfo(this, 'innerlink'); return (false);\">" + name + "</a>";
2141
                        }
2142
                    });
2143
2144
                    if (showAbout) {
2145
                        //innerLinksTopHtml += "<br /><a href=\"default.aspx\">About, FAQ and changelog </a>";
2146
                    }
2147
2148
2149
                    if (innerLinksTopHtml.length > 0) {
2150
                        $("#innerlinks").addClass("innerLinks");
2151
                        $("#innerlinks").html(innerLinksTopHtml);
2152
2153
                        $("#pagenavcell").removeClass("hidden");
2154
                        $("#innerLinksBottom").html(innerLinksBottomHtml);
2155
2156
                        $("#pagenavsm").removeClass("hidden");
2157
                        $("#innerLinksTop").html(innerLinksBottomHtml);
2158
2159
                        //setTimeout("InnerlinksSmShow();", 1000);
2160
                    }
2161
2162
2163
                }
2164
2165
2166
                $("[autoscroll]").each(function () {
2167
                    scrollToElement(this);
2168
                    return (false);
2169
                });
2170
2171
            });
2172
2173
2174
2175
            function InnerlinksSmShow() {
2176
                if ($(document).width() < 768) {
2177
                    if ($("body").hasClass("cellphone")) {
2178
                        $("#pageNavbarBottom").collapse("show");
2179
                    }
2180
                    else {
2181
                        $("#pageNavbarTop").collapse("show");
2182
                    }
2183
2184
                    $("#pagenavsm").addClass("active");
2185
                    $("#pagenavcell").addClass("active");
2186
                    
2187
2188
                    $("#siteNavbar").collapse("hide");
2189
                }
2190
2191
            }
2192
2193
            function InnerlinksSmHide() {
2194
                $("#pageNavbarBottom").collapse("hide");
2195
                $("#pageNavbarTop").collapse("hide");
2196
2197
                $("#pagenavsm").removeClass("active");
2198
                $("#pagenavcell").removeClass("active");
2199
            }
2200
2201
            //only trigger resize, if width has changed
2202
            var olwidt = 0;
2203
            docReady(function () {
2204
                olwidt = $(window).width();
2205
                $(window).resize(function () {
2206
                    if ($(window).width() != olwidt) {
2207
                        InnerlinksSmHide();
2208
                        setTimeout("InnerlinksSmShow();", 100);
2209
                    }
2210
2211
                    olwidt = $(window).width();
2212
                });
2213
            });
2214
        </script>
2215
            
2216
2217
2218
2219
    
2220
2221
        <style>
2222
2223
2224
        /* top navigation */
2225
        .innerLinks {
2226
            text-align: center;
2227
            margin-top: -15px;
2228
            font-size: 80%;
2229
            line-height: 1.1 !important;
2230
        }
2231
2232
        .innerLinks a {
2233
            color: #888888;
2234
            margin: 5px;
2235
            display: inline-block;
2236
            text-decoration: none;
2237
        }
2238
2239
        @media (max-width: 767px) {
2240
            .innerLinks {
2241
                display: none;
2242
            }
2243
        }
2244
            
2245
        #innerLinksTop a,
2246
        #innerLinksBottom a {
2247
            margin: 5px;
2248
            display: inline-block;
2249
        }
2250
        </style>
2251
2252
        
2253
    
2254
        <!-- inner links and auto scroll end -->
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
    
2270
        <script>
2271
            /* will handle click on btn's for displaying elements and hiding the others - START */
2272
            /* if target element not availible, btn will be hidden */
2273
2274
            docReady(function () {
2275
2276
2277
                $("[tabfor]").each(function () {
2278
2279
                    elmId = $(this).attr("tabfor");
2280
                    if ((elmId.length > 0) && ($("#" + elmId).length > 0)) {
2281
                        //if target element exist
2282
                        tabClickHide(this);
2283
2284
                        $(this).bind("click", function () {
2285
                            tabClick(this);
2286
                        });
2287
                    }
2288
                    else if (elmId.length == 0) {
2289
                        //no target
2290
                        $(this).bind("click", function () {
2291
                            tabClick(this);
2292
                        });
2293
                    }
2294
                    else {
2295
                        //element does not exist
2296
                        $(this).hide();
2297
                    }
2298
2299
2300
                });
2301
2302
2303
2304
                //make first element of each group visible
2305
                /*$("[tabgroup]").each(function () {
2306
2307
                    $(this).children("[tabfor]").each(function () {
2308
                        tabClickShow(this);
2309
                        return false;
2310
                    });
2311
2312
                });*/
2313
2314
2315
2316
2317
2318
2319
            });
2320
2321
            function tabClick(elm) {
2322
2323
                var targetId = $(elm).attr("tabfor");
2324
                if (targetId.length == 0) {
2325
                    targetId = "";
2326
                }
2327
2328
                //console.log("tabClick #" + targetId);
2329
2330
                //find parent tabgroup, and hide everything except the one clicked
2331
                $(elm).closest("[tabgroup]").children("[tabfor]").each(function () {
2332
                    elementTargetId = $(this).attr("tabfor");
2333
                    if (elementTargetId != targetId) {
2334
                        tabClickHide(this);
2335
                    }
2336
                });
2337
2338
                tabClickShow(elm);
2339
            }
2340
2341
            function tabClickHide(elm) {
2342
                var targetId = $(elm).attr("tabfor");
2343
                //console.log("tabClickHide #" + targetId);
2344
2345
                if ((targetId.length > 0) && ($("#" + targetId).length > 0)) {
2346
                    var targetElement = $("#" + targetId);
2347
                    targetElement.hide(100);
2348
                }
2349
            }
2350
2351
            function tabClickShow(elm) {
2352
                var targetId = $(elm).attr("tabfor");
2353
                //console.log("tabClickShow #" + targetId);
2354
2355
                if ((targetId.length > 0) && ($("#" + targetId).length > 0)) {
2356
                    var targetElement = $("#" + targetId);
2357
                    targetElement.show(200);
2358
                }
2359
            }
2360
            /* STOP */
2361
        </script>
2362
2363
2364
2365
2366
    
2367
        <script>
2368
            /* handle classes on the input fields inside btn's - START */
2369
            docReady(function () {
2370
2371
2372
                $("a input[type='radio']").each(function () {
2373
2374
                    //the btn
2375
                    $(this).parent().bind("click", function () {
2376
                        BtnRadioClick(this);
2377
                    });
2378
2379
                    //is it allreade checked=
2380
                    if ($(this).prop('checked')) {
2381
                        $(this).trigger("click");
2382
                    }
2383
                });
2384
2385
                $("a input[type='checkbox']").each(function () {
2386
2387
                    //the btn
2388
                    $(this).parent().bind("click", function () {
2389
                        BtnCheckClick(this);
2390
                    });
2391
2392
                    //the input field
2393
                    $(this).bind("click", function () {
2394
                        var x = $(this).parent();
2395
                        BtnCheckClick(x);
2396
                    });
2397
2398
                    //is it allreade checked=
2399
                    if ($(this).prop('checked')) {
2400
                        $(this).parent().addClass("btn-input-selected");
2401
                    }
2402
                });
2403
2404
            });
2405
2406
            function BtnRadioClick(elm) {
2407
2408
                //mark it as checked
2409
                $(elm).children("input[type='radio']").prop('checked', true)
2410
2411
                //get the name value
2412
                var name = $(elm).children("input[type='radio']").attr('name');
2413
2414
                //remove from all others
2415
                $("a input[type='radio'][name='" + name + "']").each(function () {
2416
                    $(this).parent().removeClass("btn-input-selected");
2417
                });
2418
2419
                //add class btn-input-selected
2420
                $(elm).addClass("btn-input-selected");
2421
            }
2422
2423
            function BtnCheckClick(elm) {
2424
2425
2426
2427
                //if checkbox, then flip it
2428
                val = $(elm).children("input[type='checkbox']").prop('checked');
2429
                $(elm).children("input[type='checkbox']").prop('checked', !val);
2430
2431
                if (!val) {
2432
                    //add class btn-input-selected
2433
                    $(elm).addClass("btn-input-selected");
2434
                }
2435
                else {
2436
                    //add class btn-input-selected
2437
                    $(elm).removeClass("btn-input-selected");
2438
                }
2439
2440
            }
2441
            /* handle classes on the input fields inside btn's - STOP */
2442
        </script>
2443
2444
2445
2446
2447
2448
    
2449
        <!-- set focus on first input field of page -->
2450
        <script>
2451
            docComplete(function () {
2452
2453
2454
                try {
2455
                    if (!$('body').hasClass("cellphone")) {
2456
2457
                        console.log("docComplete");
2458
                        var firstInput = $('.queryCol').find('.input-lg').filter(':visible:first');
2459
2460
                        if ((firstInput.is('textarea') || firstInput.is('input')) && (!(firstInput.hasClass("btn")))) {
2461
2462
                            console.log("firstInput: " + firstInput.position().top);
2463
2464
                            if (firstInput.position().top < 300) { //se fx world map
2465
2466
                                firstInput.focus();
2467
2468
                                //https://stackoverflow.com/questions/19568041/set-focus-and-cursor-to-end-of-text-input-field-string-w-jquery
2469
                                if (firstInput.val() != undefined) {
2470
                                    var strLength = firstInput.val().length * 2;
2471
                                    firstInput[0].setSelectionRange(strLength, strLength);
2472
                                }
2473
                            }
2474
                        }
2475
                    }
2476
                } catch (e) {
2477
                    //console.log(e); // Logs the error
2478
                }
2479
2480
            });
2481
        </script>
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
        <!-- stuff for the api url boxes -->
2493
        <style>
2494
            .apiUrlBoxOuter {
2495
                background-color: #f5f5f5;
2496
                border-radius: 4px;
2497
                font-size: 90%;
2498
                padding: 7px;
2499
            }
2500
                        
2501
            .apiUrlBoxInner {
2502
                background-color: unset;
2503
            }
2504
                        
2505
            .apiUrlBoxInner td {
2506
                vertical-align: top;
2507
            }
2508
                        
2509
            .apiUrlBoxMethod {
2510
                font-family: Consolas, 'Courier New';
2511
                background-color: #333;
2512
                border-radius: 4px;
2513
                display: inline;
2514
                padding: 2px;
2515
                padding-left: 5px;
2516
                padding-right: 5px;
2517
            }
2518
                        
2519
            .apiUrlBoxUrl {
2520
                font-family: Consolas, 'Courier New';
2521
                padding-left: 5px;
2522
                color: #000;
2523
                width: 100%;
2524
                word-break: break-word;
2525
            }
2526
                        
2527
            .apiUrlBoxBtn {
2528
                text-align: right;
2529
                white-space: nowrap;
2530
            }
2531
                        
2532
            .apiUrlBoxBtn a {
2533
                margin-left: 5px;
2534
            }
2535
2536
            .apiUrlHighlight {
2537
                color: #f00;
2538
            }
2539
        </style>
2540
2541
        <script>
2542
            function apiUrlTryIt(elm) {
2543
                url = $(elm).parent().parent().children('.apiUrlBoxUrl').first().html();
2544
2545
                url = "https://iamroot.tech/about/api/tryit.aspx?url=" + encodeURI(url);
2546
2547
                window.open(url, '_blank');
2548
2549
                return (false);
2550
            }
2551
2552
            function apiUrlCopy(elm) {
2553
                val = $(elm).parent().parent().children('.apiUrlBoxUrl').text();
2554
2555
                copy(val, elm);
2556
2557
                return (false);
2558
            }
2559
        </script>
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
    
2572
        
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
        <style>
2584
            .feedbackForm {
2585
                width: 95%;
2586
                position: fixed;
2587
2588
                bottom: -200px;
2589
                right: 0px;
2590
2591
                opacity: 0;
2592
                /*z-index: 1031;*/
2593
2594
                -webkit-box-shadow: 0px 0px 19px 0px rgb(0 0 0 / 75%);
2595
                -moz-box-shadow: 0px 0px 19px 0px rgba(0,0,0,0.75);
2596
                box-shadow: 0px 0px 19px 0px rgb(0 0 0 / 75%);
2597
            }
2598
2599
            
2600
            @media (max-width: 768px) {
2601
                .feedbackForm {
2602
                }
2603
            }
2604
2605
            @media (min-width: 768px) and (max-width: 991px) {
2606
                .feedbackForm {
2607
                    width: 450px;
2608
                    right: 10px;
2609
                }
2610
            }
2611
            @media (min-width: 992px) and (max-width: 1199px) {
2612
                .feedbackForm {
2613
                    width: 450px;
2614
                    right: 10px;
2615
                }
2616
2617
            }
2618
            @media (min-width: 1200px) {
2619
                .feedbackForm {
2620
                    width: 450px;
2621
                    right: 10px;
2622
                }
2623
2624
            }
2625
            @media (min-width: 1400px) {
2626
                .feedbackForm {
2627
                    width: 450px;
2628
                    right: 10px;
2629
                }
2630
            }
2631
2632
            .feedbackForm .modal-content {
2633
                background-color: #fff;
2634
            }
2635
            .feedbackForm .modal-body,
2636
            .feedbackForm .modal-body h4,
2637
            .feedbackForm .modal-body h5,
2638
            .feedbackForm .modal-body h6,
2639
            .feedbackForm .modal-body table,
2640
            .close {
2641
                color: #000;
2642
            }
2643
        </style>
2644
    
2645
    
2646
        
2647
2648
        <div id="f" style="display: none;">
2649
            </div>
2650
2651
            <script>
2652
                docReady(function () {
2653
2654
2655
2656
                    $(".feedbackForm").hide();
2657
2658
                    //if (true) {
2659
                    //if (($("#MainContent_resultOuter").is(":visible")) && (c >= 3)) {
2660
                    if (c >= 3) {
2661
                    //if ($("#MainContent_resultOuter").is(":visible")) {
2662
2663
2664
                        $(".feedbackForm").each(function (index) {
2665
2666
                            var name = $(this).closest('.feedbackForm').attr('ad');
2667
                            if (!(typeof attr !== 'undefined' && attr !== false)) {
2668
                                name = $(this).closest('.feedbackForm').attr('id');
2669
                            }
2670
2671
                            if (readCookie(name) != 1) {
2672
2673
                                var showIt = false;
2674
2675
                                var attr = $(this).attr('mobileonly');
2676
                                if (typeof attr !== 'undefined' && attr !== false) {
2677
                                    if ((navigator.userAgent.indexOf("Android") > -1) || (navigator.userAgent.indexOf("iPhone") > -1)) {
2678
                                        showIt = true;
2679
                                    }
2680
                                }
2681
                                else {
2682
                                    showIt = true;
2683
                                }
2684
2685
                                if (showIt) {
2686
                                    var popOverlay = this;
2687
2688
                                    setTimeout(function () {
2689
                                        $(popOverlay).show();
2690
                                        feedbackPutIntoView(popOverlay);
2691
                                        feedbackEvent('display-' + name);
2692
2693
                                        /*if ($('body').hasClass("userB")) {
2694
                                            feedbackSwitch($('#reachoutMain'), $('#reachoutMain2'));
2695
                                        }*/
2696
2697
                                    }, 2000);
2698
2699
2700
                                    return false; // breaks
2701
                                }
2702
                            }
2703
                        });
2704
2705
                    }
2706
2707
2708
                });
2709
2710
                function feedbackPutIntoView(jqElm) {
2711
                    boxHeight = $(jqElm).innerHeight();
2712
2713
                    var btn = 10;
2714
                    if ($("body").hasClass("cellphone")) {
2715
                        btn = 60;
2716
                    }
2717
2718
                    $(jqElm).animate({
2719
                        opacity: 1,
2720
                        bottom: btn,
2721
                        right: 10
2722
                    }, 200);
2723
2724
                }
2725
2726
                function feedbackHide(jqElmClicked, days, why) {
2727
2728
                    $(jqElmClicked).closest('.feedbackForm').animate({
2729
                        opacity: 0,
2730
                        bottom: -500
2731
                    }, 500);
2732
2733
                    var name = $(jqElmClicked).closest('.feedbackForm').attr('ad');
2734
                    if (!(typeof attr !== 'undefined' && attr !== false)) {
2735
                        name = $(jqElmClicked).closest('.feedbackForm').attr('id');
2736
                    }
2737
2738
                    createCookie(name, "1", days);
2739
2740
2741
                    feedbackEvent(why + '-' + name);
2742
                }
2743
2744
2745
                function feedbackSwitch(jqCurrentElm, jqNxtElm) {
2746
                    $(jqCurrentElm).hide(200);
2747
                    $(jqNxtElm).show(200);
2748
2749
                    var name = $(jqCurrentElm).closest('.feedbackForm').attr('ad');
2750
                    if (!(typeof attr !== 'undefined' && attr !== false)) {
2751
                        name = $(jqCurrentElm).closest('.feedbackForm').attr('id');
2752
                    }
2753
2754
                    feedbackEvent('display-' + name + "-" + $(jqNxtElm).attr('id'));
2755
                }
2756
2757
2758
                function feedbackEvent(what) {
2759
2760
                    var url = "/feedback/event.aspx?q=" + what;
2761
2762
                    var jqxhr = $.ajax(url)
2763
                        .done(function () {
2764
                            //alert("success");
2765
                        })
2766
                        .fail(function () {
2767
                            //alert("error");
2768
                        })
2769
                        .always(function () {
2770
                            //alert("complete");
2771
                        });
2772
                }
2773
2774
2775
                function feedbackSend(v) {
2776
2777
                    var q = encodeURIComponent($("#feedbackq").html());
2778
                    var w = $(window).width();
2779
2780
                    var u = "iamroot.tech%2fdefault.aspx";
2781
                    var i = "";
2782
2783
                    v = encodeURIComponent(v);
2784
2785
                    var url = "/feedback/send.aspx?q=" + q + "&w=" + w + "&u=" + u + "&i=" + i + "&v=" + v;
2786
2787
                    var jqxhr = $.ajax(url)
2788
                        .done(function () {
2789
                            //alert("success");
2790
                        })
2791
                        .fail(function () {
2792
                            //alert("error");
2793
                        })
2794
                        .always(function () {
2795
                            //alert("complete");
2796
                        });
2797
                }
2798
2799
2800
                function createCookie(name, value, days) {
2801
                    if ((days) && (days>0)) {
2802
                        var date = new Date();
2803
                        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
2804
                        var expires = "; expires=" + date.toGMTString();
2805
                    }
2806
                    else var expires = "";
2807
2808
                    document.cookie = name + "=" + value + expires + "; path=/";
2809
                }
2810
2811
                function readCookie(name) {
2812
                    var nameEQ = name + "=";
2813
                    var ca = document.cookie.split(';');
2814
                    for (var i = 0; i < ca.length; i++) {
2815
                        var c = ca[i];
2816
                        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
2817
                        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
2818
                    }
2819
                    return null;
2820
                }
2821
2822
            </script>
2823
        
2824
        
2825
            <script>
2826
                function perfFeedback(timespent) {
2827
2828
                    try {
2829
                        const perfEntries = performance.getEntriesByType("navigation");
2830
                        const [p] = perfEntries;
2831
2832
                        var domainLookup = p.domainLookupEnd - p.domainLookupStart;
2833
                        var connect = p.connectEnd - p.connectStart;
2834
                        var response = p.responseEnd - p.responseStart;
2835
                        var domLoad = p.domContentLoadedEventEnd - 0;
2836
2837
                        var fingerprint = generateFingerprint();
2838
2839
                        var url = "/feedback/callback.aspx?uuid=860db7ca9f9641478ab84c06e213d950&resp=" + parseInt(response) + "&dom=" + parseInt(domLoad) + "&timespent=" + parseInt(timespent) + "&fp=" + encodeURIComponent(fingerprint);
2840
2841
                        var jqxhr = $.ajax(url)
2842
                            .done(function () {
2843
                                //alert("success");
2844
                            })
2845
                            .fail(function () {
2846
                                //alert("error");
2847
                            })
2848
                            .always(function () {
2849
                                //alert("complete");
2850
                            });
2851
2852
                        //only trigger, if timespent is less than 10 minutes, and the windows is active
2853
                        if ((timespent < (10 * 60)) && (!document.hidden)) {
2854
                            setTimeout("perfFeedback(" + (timespent + 10) + ");", 10000);
2855
                        }
2856
                        
2857
2858
                    }
2859
                    catch (error)
2860
                    {
2861
                        //alert(error);
2862
                    }
2863
2864
                };
2865
2866
2867
                docReady(function () { setTimeout("perfFeedback(1);", 1000) });
2868
2869
2870
                
2871
2872
2873
2874
            </script>
2875
        
2876
2877
2878
</body>
2879
</html>
2880

Log

  • Resolving host 'iamroot.tech' to 'iamroot.tech (209.126.83.17)' in 102ms. 1 additional IP's was returned as well.
  • Connected to '209.126.83.17' on port '443'
  • SSL connection established (TLS 1.3, using certificat 'iamroot.tech', expirery 23-07-2024.)
  • Request sent to host
  • Waiting for response
  • First 1.024 bytes recieved in 433ms
  • A total of 146.864 bytes recieved in 435ms
  • Response parsed in 0ms