PageSourceSearch

https://whatsmyip.com/port-check

html whatsmyip.com collected 2026-10-02 15:24:04 UTC 67,021 bytes, 76 lines download raw bytes

1<!DOCTYPE html><html class="dark" data-rh="lang" lang="en" style="color-scheme:dark;--ad-page-width:480px"><head><meta charset="UTF-8"><meta content="width=device-width,initial-scale=1" name="viewport"><title>Port Checker Tool - Test Open Ports & Network Connectivity</title><meta content="Free online port checker to test if ports are open or closed on any server. Check TCP/UDP ports, troubleshoot firewall issues, and verify network connectivity." name="description"><!-- Favicons --><link href="/favicon.png" rel="icon" type="image/png"><link href="/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180"><!-- Default meta tags - will be overridden by react-helmet-async on each page --><meta content="Port Checker Tool - Test Open Ports & Network Connectivity" property="og:title"><meta content="Free online port checker to test if ports are open or closed on any server. Check TCP/UDP ports, troubleshoot firewall issues, and verify network connectivity." property="og:description"><meta content="website" property="og:type"><meta content="https://whatsmyip.com/og-image.png" property="og:image"><meta content="summary_large_image" name="twitter:card"><meta content="https://whatsmyip.com/og-image.png" name="twitter:image">
1<script data-cfasync="false" async src="https://accounts.google.com/gsi/client" defer></script>
1<link href="https://ads.holid.io" rel="preconnect" crossorigin=""><link href="https://securepubads.g.doubleclick.net" rel="preconnect" crossorigin=""><link href="https://pagead2.googlesyndication.com" rel="preconnect" crossorigin=""><link href="//ads.holid.io" rel="dns-prefetch"><link href="//securepubads.g.doubleclick.net" rel="dns-prefetch"><link href="//pagead2.googlesyndication.com" rel="dns-prefetch"><!-- Google tag (gtag.js) -->
vendor: 57 bytes, line 1
1<script src="https://www.googletagmanager.com/gtag/js?id=
1G-Y55MP7HG9P
vendor: 17 bytes, line 1
1" async></script>
1<script>
vendor: 146 bytes, lines 1-5
1window.dataLayer = window.dataLayer || [];
2      function gtag(){dataLayer.push(arguments);}
3      gtag('js', new Date());
4
5      gtag('config', '
5G-Y55MP7HG9P
vendor: 3 bytes, line 5
5');
5</script>
5<script data-cfasync="false">window.__WMI_BOOTSTRAP_IP__ = '181.215.65.67';</script>
5<script src="/assets/index-DMDmnVwu.js" crossorigin="" type="module"></script>
5<link href="/assets/vendor-Bd9hyaYX.js" rel="modulepreload" crossorigin=""><link href="/assets/index-Bgd6mB9K.css" rel="stylesheet" crossorigin=""><link href="https://whatsmyip.com/port-check" rel="canonical"><meta content="https://whatsmyip.com/port-check" property="og:url"><meta content="Port Checker Tool - Test Open Ports & Network Connectivity" name="twitter:title"><meta content="Free online port checker to test if ports are open or closed on any server. Check TCP/UDP ports, troubleshoot firewall issues, and verify network connectivity." name="twitter:description"><style type="text/css">:where([data-sonner-toaster][dir=ltr]),:where(html[dir=ltr]){--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}:where([data-sonner-toaster][dir=rtl]),:where(html[dir=rtl]){--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted=true]){transform:translateY(-10px)}@media (hover:none) and (pointer:coarse){:where([data-sonner-toaster][data-lifted=true]){transform:none}}:where([data-sonner-toaster][data-x-position=right]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position=left]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position=center]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position=top]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position=bottom]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled=true]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position=top]){top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position=bottom]){bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise=true]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme=dark]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
5left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled=true]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping=true]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position=top][data-swiping=true]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position=bottom][data-swiping=true]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping=false][data-removed=true]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted=true]){--y:translateY(0);opacity:1}:where([data-sonner-toast][data-expanded=false][data-front=false]){--scale:var(--toasts-before) * .05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded=false][data-front=false][data-styled=true])>*{opacity:0}
5:where([data-sonner-toast][data-visible=false]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted=true][data-expanded=true]){--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]){--y:translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]){--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]){--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed=true][data-front=false]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translate(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 91%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 91%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 91%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 100%, 12%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 12%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);
5--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}</style><link href="http://localhost:45678/port-check" rel="canonical" data-rh="true"><link href="http://localhost:45678/port-check" rel="alternate" data-rh="true" hreflang="x-default"><link href="http://localhost:45678/port-check" rel="alternate" data-rh="true" hreflang="en"><link href="http://localhost:45678/sv/port-check" rel="alternate" data-rh="true" hreflang="sv"><meta content="Free online port checker to test if ports are open or closed on any server. Check TCP/UDP ports, troubleshoot firewall issues, and verify network connectivity." data-rh="true" name="description"><meta content="index, follow" data-rh="true" name="robots"><meta content="index, follow" data-rh="true" name="googlebot"><meta content="Port Checker Tool - Test Open Ports & Network Connectivity" data-rh="true" property="og:title"><meta content="Free online port checker to test if ports are open or closed on any server. Check TCP/UDP ports, troubleshoot firewall issues, and verify network connectivity." data-rh="true" property="og:description"><meta content="website" data-rh="true" property="og:type"><meta content="http://localhost:45678/port-check" data-rh="true" property="og:url"><meta content="What's My IP" data-rh="true" property="og:site_name"><meta content="http://localhost:45678/og-image.png" data-rh="true" property="og:image">
5<meta content="1200" data-rh="true" property="og:image:width"><meta content="630" data-rh="true" property="og:image:height"><meta content="en_US" data-rh="true" property="og:locale"><meta content="summary_large_image" data-rh="true" name="twitter:card"><meta content="Port Checker Tool - Test Open Ports & Network Connectivity" data-rh="true" name="twitter:title"><meta content="Free online port checker to test if ports are open or closed on any server. Check TCP/UDP ports, troubleshoot firewall issues, and verify network connectivity." data-rh="true" name="twitter:description"><meta content="@whatsmyip" data-rh="true" name="twitter:site"><meta content="http://localhost:45678/og-image.png" data-rh="true" name="twitter:image">
5<script type="application/ld+json" data-rh="true">{"@context":"https://schema.org","@type":"HowTo","name":"How to check if a port is open","description":"Free port checker tool to test if specific ports are open and accessible","step":[{"@type":"HowToStep","name":"Enter Host","text":"Enter the hostname or IP address to check","position":1},{"@type":"HowToStep","name":"Enter Port","text":"Specify the port number(s) you want to test (comma-separated for multiple)","position":2},{"@type":"HowToStep","name":"Check Port","text":"Click check to verify if the port is open and accessible","position":3}],"tool":{"@type":"SoftwareApplication","name":"Port Checker Tool","applicationCategory":"UtilitiesApplication","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"}}}</script>
5<script type="application/ld+json" data-rh="true">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http://localhost:45678/"},{"@type":"ListItem","position":2,"name":"Port Checker","item":"http://localhost:45678/port-check"}]}</script>
5<script data-cfasync="false" async src="https://ads.holid.io/auto/whatsmyip.com/holid.js" id="holid-js"></script>
5<style type="text/css">:where([data-sonner-toaster][dir=ltr]),:where(html[dir=ltr]){--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}:where([data-sonner-toaster][dir=rtl]),:where(html[dir=rtl]){--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted=true]){transform:translateY(-10px)}@media (hover:none) and (pointer:coarse){:where([data-sonner-toaster][data-lifted=true]){transform:none}}:where([data-sonner-toaster][data-x-position=right]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position=left]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position=center]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position=top]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position=bottom]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled=true]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position=top]){top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position=bottom]){bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise=true]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme=dark]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
5left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled=true]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping=true]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position=top][data-swiping=true]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position=bottom][data-swiping=true]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping=false][data-removed=true]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted=true]){--y:translateY(0);opacity:1}:where([data-sonner-toast][data-expanded=false][data-front=false]){--scale:var(--toasts-before) * .05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded=false][data-front=false][data-styled=true])>*{opacity:0}
5:where([data-sonner-toast][data-visible=false]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted=true][data-expanded=true]){--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]){--y:translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]){--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]){--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed=true][data-front=false]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translate(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 91%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 91%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 91%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 100%, 12%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 12%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);
5--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}</style></head><body><div class="bg-background" id="root">
5<script>!function(){var d=document.documentElement,c=d.classList;c.remove('light','dark');d.style.colorScheme = 'dark';c.add('dark')}()</script>
5<div role="region" aria-label="Notifications (F8)" style="pointer-events:none" tabindex="-1"><ol class="fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]" tabindex="-1"></ol></div><section aria-atomic="false" aria-label="Notifications alt+T" aria-live="polite" aria-relevant="additions text" tabindex="-1"></section><header class="fixed inset-x-0 top-0 z-[60] border-b border-border/50 bg-background/80 supports-[backdrop-filter]:bg-background/60 backdrop-blur-sm"><div class="container mx-auto px-4 py-4 max-h-[362px] min-[1280px]:pr-[320px] min-[2000px]:pr-0"><div class="flex items-center justify-between"><div class="flex items-center gap-3"><a class="flex items-center gap-3" href="/"><div class="p-2 rounded-lg bg-gradient-primary"><svg class="lucide lucide-wifi h-6 w-6 text-primary-foreground" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M12 20h.01"></path><path d="M2 8.82a15 15 0 0 1 20 0"></path><path d="M5 12.859a10 10 0 0 1 14 0"></path><path d="M8.5 16.429a5 5 0 0 1 7 0"></path></svg></div><div class="hidden md:block"><h1 class="text-xl font-bold">What's My IP</h1><p class="text-sm text-muted-foreground">Network Tools & IP Information</p></div></a></div><div class="flex items-center gap-4"><button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 gap-2" aria-expanded="false" data-state="closed" id="radix-:r0:" type="button" aria-haspopup="menu">Tools <svg class="lucide lucide-chevron-down h-4 w-4" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m6 9 6 6 6-6"></path></svg></button><div class="flex items-center gap-2"><button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 gap-2" aria-expanded="false" data-state="closed" id="radix-:r2:" type="button" aria-haspopup="menu"><svg class="lucide lucide-globe h-4 w-4" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><span class="text-lg">🇺🇸</span></button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 aspect-square p-2" aria-expanded="false" data-state="closed" id="radix-:r4:" type="button" aria-haspopup="menu"><svg class="lucide lucide-sun h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg class="lucide lucide-moon absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span class="sr-only">Toggle theme</span></button><div class="hidden md:flex items-center gap-2"><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-primary/20 text-primary curs
5or-pointer hover:bg-primary/30 transition-colors">Free Tools</div><a class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3 gap-2" href="/auth"><svg class="lucide lucide-log-in h-4 w-4" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"></path><polyline points="10 17 15 12 10 7"></polyline><line x1="15" x2="3" y1="12" y2="12"></line></svg> Login</a></div></div></div></div></div></header><div class="h-16 md:h-20" aria-hidden="true"></div><div class="container mx-auto px-2.5 sm:px-8 pt-4 min-[1280px]:pr-[320px] min-[2000px]:pr-0"><div class="holidAds wmi-ad-slot widescreen w-full my-3 flex justify-center mx-auto" role="complementary" aria-label="advertisement" data-ad-format="widescreen"></div></div><aside class="wmi-ad-rail wmi-ad-rail-right fixed z-30 top-[80px] bottom-4 pointer-events-auto right-2 hidden xl:flex min-[1400px]:w-[320px] flex-col items-center gap-3"><div class="holidAds wmi-ad-slot box w-full my-3 flex justify-center w-[300px] min-h-[90px] max-w-[320px]" role="complementary" aria-label="advertisement" data-ad-format="box"></div><div class="holidAds wmi-ad-slot tower w-full my-3 flex justify-center w-[300px] min-h-[90px] floating-tower max-w-[320px]" role="complementary" aria-label="advertisement" data-ad-format="tower"></div></aside><aside class="wmi-ad-rail wmi-ad-rail-left fixed z-30 top-[80px] bottom-4 pointer-events-auto left-2 hidden min-[2000px]:flex min-[2000px]:w-[320px] flex-col items-center gap-3"><div class="holidAds wmi-ad-slot box w-full my-3 flex justify-center w-[300px] min-h-[90px] max-w-[320px]" role="complementary" aria-label="advertisement" data-ad-format="box"></div><div class="holidAds wmi-ad-slot tower w-full my-3 flex justify-center w-[300px] min-h-[90px] floating-tower max-w-[320px]" role="complementary" aria-label="advertisement" data-ad-format="tower"></div></aside><div class="min-[1280px]:pr-[320px] min-[2000px]:pl-[320px]"><div class="min-h-screen bg-background"><main class="container mx-auto px-4 py-12 space-y-16"><section class="text-center space-y-8"><div class="space-y-4"><h1 class="text-4xl md:text-6xl font-bold bg-gradient-primary bg-clip-text text-transparent animate-float">Port Checker Tool</h1><p class="text-xl text-muted-foreground max-w-3xl mx-auto">Test if a specific port is open and accessible on any host or server. Essential for network troubleshooting, firewall configuration, and service monitoring.</p></div></section><section class="max-w-4xl mx-auto space-y-8"><div class="rounded-lg border text-card-foreground shadow-sm bg-card/50 border-border/50 backdrop-blur-sm hover:shadow-glow-primary transition-all duration-300"><div class="flex flex-col space-y-1.5 p-3 md:p-6"><h3 class="text-2xl font-semibold leading-none tracking-tight flex items-center gap-2"><svg class="lucide lucide-shield h-5 w-5" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg>Port Connectivity Test</h3><p class="text-sm text-muted-foreground">Check if a specific port is open and accepting connections</p></div><div class="p-3 md:p-6 pt-0 space-y-4"><div class="space-y-4"><div class="flex flex-col md:flex-row gap-4"><input class="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm flex-1" placeholder="example.com or 192.168.1.1" value=""><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2 w-full md:w-auto">Check Ports</button></div><div class="space-y-2"><label class="text-sm font-medium">Custom Ports (comma-separated, leave empty for standard ports)</label><input class="flex h-10 rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm w-full" placeholder="80,443,22,21 (optional - defaults to standard ports)" value=""><p class="text-xs text-muted-foreground">Standard ports checked: 22 (SSH), 80 (HTTP), 443 (HTTPS), 21 (FTP), 25 (SMTP), 53 (DNS), 110 (POP3), 143 (IMAP), 993 (IMAPS
5), 995 (POP3S)</p></div></div></div></div></section><div class="holidAds wmi-ad-slot widescreen w-full my-3 flex justify-center my-8 mx-auto min-h-[90px]" role="complementary" aria-label="advertisement" data-ad-format="widescreen"></div><section class="space-y-8"><div class="text-center space-y-4"><h2 class="text-3xl font-bold">Port Checker Features</h2><p class="text-muted-foreground max-w-2xl mx-auto">Advanced port scanning capabilities for network diagnostics and security testing</p></div><div class="grid grid-cols-1 md:grid-cols-3 gap-6"><div class="rounded-lg border text-card-foreground shadow-sm bg-gradient-secondary/50 border-border/50 backdrop-blur-sm hover:shadow-glow-secondary transition-all duration-300"><div class="flex flex-col space-y-1.5 p-3 md:p-6"><div class="flex items-center gap-3 mb-2"><svg class="lucide lucide-network h-8 w-8 text-primary flex-shrink-0" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="6" rx="1" width="6" x="16" y="16"></rect><rect height="6" rx="1" width="6" x="2" y="16"></rect><rect height="6" rx="1" width="6" x="9" y="2"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg><h3 class="font-semibold tracking-tight text-lg">TCP/UDP Support</h3></div><p class="text-sm text-muted-foreground">Test both TCP and UDP port connectivity for comprehensive network analysis</p></div></div><div class="rounded-lg border text-card-foreground shadow-sm bg-gradient-secondary/50 border-border/50 backdrop-blur-sm hover:shadow-glow-secondary transition-all duration-300"><div class="flex flex-col space-y-1.5 p-3 md:p-6"><div class="flex items-center gap-3 mb-2"><svg class="lucide lucide-server h-8 w-8 text-primary flex-shrink-0" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><rect height="8" rx="2" width="20" x="2" y="2" ry="2"></rect><rect height="8" rx="2" width="20" x="2" y="14" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><h3 class="font-semibold tracking-tight text-lg">Multiple Protocols</h3></div><p class="text-sm text-muted-foreground">Support for HTTP, HTTPS, FTP, SSH, Telnet, and other common protocols</p></div></div><div class="rounded-lg border text-card-foreground shadow-sm bg-gradient-secondary/50 border-border/50 backdrop-blur-sm hover:shadow-glow-secondary transition-all duration-300"><div class="flex flex-col space-y-1.5 p-3 md:p-6"><div class="flex items-center gap-3 mb-2"><svg class="lucide lucide-clock h-8 w-8 text-primary flex-shrink-0" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><h3 class="font-semibold tracking-tight text-lg">Response Time</h3></div><p class="text-sm text-muted-foreground">Measure connection response time to identify network latency issues</p></div></div></div></section><section class="space-y-8"><div class="text-center space-y-4"><h2 class="text-3xl font-bold">How to Use Port Checker</h2><p class="text-muted-foreground">Simple steps to test port connectivity</p></div><div class="grid grid-cols-1 mx-auto md:grid-cols-2 gap-8 max-w-4xl"><div class="space-y-6"><div class="flex gap-4"><div class="border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 w-8 h-8 rounded-full flex items-center justify-center">1</div><div><h3 class="font-semibold">Enter Target Host</h3><p class="text-sm text-muted-foreground">Type the hostname or IP address you want to test</p></div></div><div class="flex gap-4"><div class="border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 w-8 h-8 rounded-full flex items-center justify-center">2</div><div><h3 class="font-semibold">Specify Port Number</h3><p class="text-sm text-muted-foreground">Enter the port number you want to check (1-65535)</p></div></div><div class="flex gap-4"><div class="border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 w-8 h-8 rounded-full flex items-center justify-center">3</div><div><h3 class="font-semibold">View Results</h3><p class="text-sm text-muted-foreground">Get instant results with connection status and response time</p></div></div></div><div class="space-y-4"><h3 class="text-xl font-semibold">Common Ports to Check</h3><div class="grid grid-cols-2 gap-2 text-sm"><div class="space-y-1"><p><strong>80</strong> - HTTP</p><p><strong>443</strong> - HTTPS</p><p><strong>22</strong> - SSH</p><p><strong>21</strong> - FTP</p><p><strong>25</strong> - SMTP</p></div><div class="space-y-1"><p><strong>53</strong> - DNS</p><p><strong>3389</strong> - RDP</p><p><strong>3306</strong> - MySQL</p><p><strong>5432</strong> - PostgreSQL</p><p><strong>6379</strong> - Redis</p></div></div></div></div></section>
5<section class="prose prose-invert max-w-4xl mx-auto space-y-8"><div class="text-center space-y-4"><h2 class="text-3xl font-bold">About Port Checking</h2><p class="text-muted-foreground">Port checking is a network diagnostic technique used to test whether specific network ports on a server or device are open and accepting connections.</p></div><div class="grid grid-cols-1 md:grid-cols-2 gap-8 text-sm"><div class="space-y-4"><h3 class="text-xl font-semibold">Why Check Ports</h3><ul class="space-y-2 text-muted-foreground"><li>• Verify firewall configuration</li><li>• Troubleshoot connectivity issues</li><li>• Test network security</li><li>• Validate service availability</li><li>• Debug application problems</li><li>• Monitor server accessibility</li><li>• Audit network security</li></ul></div><div class="space-y-4"><h3 class="text-xl font-semibold">Port Status Types</h3><ul class="space-y-2 text-muted-foreground"><li><strong>Open:</strong> Accepting connections</li><li><strong>Closed:</strong> Not accepting connections</li><li><strong>Filtered:</strong> Blocked by firewall</li><li><strong>Unfiltered:</strong> Accessible but no service</li><li><strong>Open|Filtered:</strong> Cannot determine</li><li><strong>Closed|Filtered:</strong> Uncertain status</li></ul></div></div></section><section class="max-w-4xl mx-auto space-y-6"><div class="text-center space-y-2 mt-4"><div class="flex items-center justify-center gap-2"><svg class="lucide lucide-circle-help h-8 w-8 text-primary" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><path d="M12 17h.01"></path></svg><h2 class="text-3xl font-bold">Frequently Asked Questions</h2></div><p class="text-muted-foreground">Find answers to common questions</p></div><div class="rounded-lg border text-card-foreground shadow-sm bg-card/50 border-border/50 backdrop-blur-sm hover:shadow-glow-primary transition-all duration-300"><div class="md:p-6 p-6"><div class="w-full" data-orientation="vertical"><div class="border-b" data-orientation="vertical" data-state="closed"><h3 class="flex" data-orientation="vertical" data-state="closed"><button class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180 text-left hover:text-primary" aria-expanded="false" data-state="closed" id="radix-:r6:" type="button" aria-controls="radix-:r7:" data-orientation="vertical" data-radix-collection-item="">What does it mean when a port is open?<svg class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" role="region" aria-labelledby="radix-:r6:" data-orientation="vertical" data-state="closed" hidden id="radix-:r7:" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div class="border-b" data-orientation="vertical" data-state="closed"><h3 class="flex" data-orientation="vertical" data-state="closed"><button class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180 text-left hover:text-primary" aria-expanded="false" data-state="closed" id="radix-:r8:" type="button" aria-controls="radix-:r9:" data-orientation="vertical" data-radix-collection-item="">Why is my port showing as closed?<svg class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" role="region" aria-labelledby="radix-:r8:" data-orientation="vertical" data-state="closed" hidden id="radix-:r9:" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div class="border-b" data-orientation="vertical" data-state="closed"><h3 class="flex" data-orientation="vertical" data-state="closed"><button class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180 text-left hover:text-primary" aria-expanded="false" data-state="closed" id="radix-:ra:" type="button" aria-controls="radix-:rb:" data-orientation="vertical" data-radix-collection-item="">Is it safe to have ports open?<svg class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" role="region" aria-labelledby="radix-:ra:" data-orientation="vertical" data-state="closed" hidden id="radix-:rb:" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div class="border-b" data-orientation="vertical" data-state="closed"><h3 class="flex" data-orientation="vertical" data-state="closed"><button class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180 text-left hover:text-primary" aria-expanded="false" data-state="closed" id="radix-:rc:" type="button" aria-controls="radix-:rd:" data-orientation="vertical" data-radix-collection-item="">How can I open or close a port?<svg class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" role="region" aria-labelledby="radix-:rc:" data-orientation="vertical" data-state="closed" hidden id="radix-:rd:" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div></div></div></div></section></main></div></div><div class="container mx-auto px-4 flow-root min-[1400px]:pr-[320px] min-[2000px]:pr-0"><div class="holidAds wmi-ad-slot widescreen w-full my-3 flex justify-center my-8 mx-auto" role="complementary" aria-label="advertisement" data-ad-format="widescreen"></div></div><footer class="border-t border-border/50 bg-card/30 backdrop-blur-sm mt-20"><div class="container mx-auto px-4 py-12"><div class="grid grid-cols-1 md:grid-cols-4 gap-8"><div class="space-y-4"><h3 class="text-lg font-semibold">About What's My IP</h3><p class="text-sm text-muted-foreground">A comprehensive suite of network diagnostic tools for developers, system administrators, and anyone who needs reliable network information.</p><div class="flex items-center gap-2 text-xs text-muted-foreground"><span>Made with</span><svg class="lucide lucide-heart h-3 w-3 text-red-500" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"></path></svg><span>for the developer community</span></div></div><div class="space-y-4"><h3 class="text-lg font-semibold">Popular Tools</h3><ul class="space-y-2 text-sm text-muted-foreground"><li><a class="hover:text-primary transition-colors" href="/">IP Address Lookup</a></li><li><a class="hover:text-primary transition-colors" href="/dns-lookup">DNS Lookup</a></li><li><a class="hover:text-primary transition-colors" href="/port-check">Port Checker</a></li><li><a class="hover:text-primary transition-colors" href="/whois-lookup">WHOIS Lookup</a></li><li><a class="hover:text-primary transition-colors" href="/ssl-checker">SSL Checker</a></li></ul></div><div class="space-y-4"><h3 class="text-lg font-semibold">Resources</h3><ul class="space-y-2 text-sm text-muted-foreground"><li><a class="hover:text-primary transition-colors" href="/api-docs">API Documentation</a></li><li><a class="hover:text-primary transition-colors" href="/json-formatter">JSON Formatter</a></li><li><a class="hover:text-primary transition-colors" href="/image-converter">Image Converter</a></li><li><a class="hover:text-primary transition-colors" href="/javascript-formatter">JavaScript Formatter</a></li></ul></div><div class="space-y-4"><h3 class="text-lg font-semibold">Connect</h3><div class="space-y-3"><div class="flex items-center gap-2"><svg class="lucide lucide-globe h-4 w-4 text-primary" fill="none" height="24" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><span class="text-sm">Available worldwide</span></div><div class="flex flex-wrap gap-2"><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80">IPv4</div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80">IPv6</div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80">HTTPS</div></div></div></div></div><div class="border-t border-border/50 mt-8 pt-8 flex flex-col md:flex-row items-center justify-between gap-4"><p class="text-sm text-muted-foreground">© 2024 What's My IP. Free network tools for everyone.</p><div class="flex items-center gap-4 text-sm text-muted-foreground"><a class="hover:text-primary transition-colors" href="#">Privacy Policy</a><a class="hover:text-primary transition-colors" href="#">Terms of Service</a><a class="hover:text-primary transition-colors" href="#">Contact</a></div></div></div></footer></div>
5<script data-cfasync="false">/* */
6       (function(){
7         function inject(){
8           if (document.getElementById('holid-js')) return;
9           window.wmiAdsLayout?.prepare();
10           const s=document.createElement('script');
11           s.id='holid-js'; s.async=true; s.setAttribute('data-cfasync','false');
12           s.src='https://ads.holid.io/auto/whatsmyip.com/holid.js';
13           s.onload = function () { window.wmiAdsLayout?.install(); };
14           document.head.appendChild(s);
15         }
16         // Wait for React's real slots, not react-snap's discarded DOM.
17         window.addEventListener('wmi:ads-ready', function () {
18           requestAnimationFrame(inject);
19         }, {once:true});
20       })();
21
22         (function () {
23         // Justera dessa två selektorer efter din markup
24         const towerSelector = '.floating-tower'; // dina tower-divar
25         const footerSelector = 'footer';         // din footer (ev. .site-footer eller liknande)
26
27         const footer = document.querySelector(footerSelector);
28         if (!footer) return;
29
30         function setTowersHidden(isHidden) {
31         const towers = document.querySelectorAll(towerSelector);
32         towers.forEach(el => {
33         if (isHidden) {
34         //  console.log("Adding: floating-tower--hidden-near-footer");
35         el.classList.add('floating-tower--hidden-near-footer');
36       } else {
37         //  console.log("Removing: floating-tower--hidden-near-footer");
38         el.classList.remove('floating-tower--hidden-near-footer');
39       }
40       });
41       }
42
43         // Modern & robust lösning: IntersectionObserver på footern
44         if ('IntersectionObserver' in window) {
45         const observer = new IntersectionObserver(
46         entries => {
47         const footerVisible = entries.some(entry => entry.isIntersecting);
48         setTowersHidden(footerVisible);
49       },
50       {
51         root: null,   // viewport
52         threshold: 0.01 // så fort fotern snuddar viewporten
53       }
54         );
55
56         observer.observe(footer);
57       } else {
58         // Fallback om IntersectionObserver saknas (gamla browsers)
59         const BOTTOM_THRESHOLD = 250;
60
61         function onScrollFallback() {
62         const docEl = document.documentElement;
63         const scrollTop = window.scrollY || docEl.scrollTop;
64         const viewportHeight = window.innerHeight || docEl.clientHeight;
65         const pageHeight = Math.max(docEl.scrollHeight, document.body.scrollHeight);
66         const nearBottom = scrollTop + viewportHeight >= pageHeight - BOTTOM_THRESHOLD;
67
68         setTowersHidden(nearBottom);
69       }
70
71         window.addEventListener('scroll', onScrollFallback);
72         window.addEventListener('resize', onScrollFallback);
73         document.addEventListener('DOMContentLoaded', onScrollFallback);
74       }
75       })();</script>
75<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"02e6e832256c41d98382904e224341b9","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 75
75
76<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a444b63a0ebe36a1',t:'MTc5MDk1NDY0Mw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
76</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.