Example Request

Here is an example query.

In this example we send a simple query to access https://search.censys.io/ using the Website Unblocker without custom options:

curl -x username:password@unblocker.netnut.io:5959 -k https://search.censys.io/

Upon successful execution of this command, the output will be the HTML content or any relevant response from https://search.censys.io/.

The following example showcases the Website Unblocker's capability to bypass restrictions and access the content of the specified URL.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>Censys Search</title>
<meta name="description" content="Censys helps organizations, individuals, and researchers find and monitor every server on the Internet to reduce exposure and improve security.">


<link rel="shortcut icon" href="https://search.censys.io/static/img/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" sizes="180x180" href="https://search.censys.io/static/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://search.censys.io/static/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://search.censys.io/static/img/favicon-16x16.png">
<link rel="icon" href="https://search.censys.io/static/img/icon.png" />
<link rel="manifest" href="https://search.censys.io/static/site.webmanifest">
<link rel="mask-icon" href="https://search.censys.io/static/img/safari-pinned-tab.svg" color="#ff7a37">
<meta name="msapplication-TileColor" content="#ff7a37">
<meta name="msapplication-TileImage" content="https://search.censys.io/static/img/mstile-150x150.png">
<meta name="theme-color" content="#ffffff">


<link rel="stylesheet" charset="utf-8" href="https://search.censys.io/static/css/bootstrap.min.css" />
<link rel="stylesheet" charset="utf-8" href="https://search.censys.io/static/css/material-kit.min.css" />
<link rel="stylesheet" charset="utf-8" href="https://search.censys.io/static/css/custom.css?version=94d5177f749a79b3078bdf11246465ad" />
<link rel="stylesheet" charset="utf-8" href="https://search.censys.io/static/css/marketing/footer.css" />
<link rel="stylesheet" charset="utf-8" href="https://search.censys.io/static/css/app/footer-light.css" />


<link rel="preconnect" href="https://fonts.gstatic.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&family=Roboto+Mono:wght@400;500&family=Roboto:wght@400;500;700&family=Titillium+Web:wght@400;700&family=Material+Icons&display=swap">
<link rel="preload" as="font" type="font/woff2" crossorigin href="https://unpkg.com/font-awesome@4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0" />
<link rel="preload" as="style" href="https://unpkg.com/font-awesome@4.7.0/css/font-awesome.min.css" onload="this.rel='stylesheet'" /><link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.4.0/styles/github.min.css">
<style>
    body {
      padding-bottom: 0;
    }


    body, #content {
      background-color: #F6F7F9 !important;
    }


    #app-announcement ~ #content {
      padding-top: 55px;
    }


    footer {
      background-color: white;
    }


    #inner-content {
      height: 100%;
      text-align: center;
      display: flex;
      justify-content: center;


      flex: 0 1 auto;


      /* Height of the Footer */
      padding-bottom:  157px;
    }


    #inner-content .row {
      min-width: 425px;
      width: 85%;
      max-width: 750px;


      padding-left: 2rem;
      padding-right: 2rem;
    }


    .details {
      margin: 2.5rem 0 auto;
      color: #4D5358;
      text-shadow: 1px 1px .2px rgba(255, 159, 113, 0.05);
    }


    .details span {
      white-space: nowrap;
      padding: 0 10px;
    }


    .details span .fa {
      margin-right: 5px;
    }


    .landing-logo {
      width: 350px;
      margin-bottom: 9rem;
    }


    .landing-buttons {
      margin-top: 2rem;
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      flex-direction: row;
    }


    .landing-buttons a {
      margin-left: .5rem;
      margin-right: .5rem;
    }


    .landing-buttons a.btn.btn-info {
      background-color: white !important;
      border: #C1C5CB 1px solid !important;
      color: #333 !important;
      box-shadow: none !important;
    }


    .landing-buttons a.btn.btn-info:hover {
      background-color: #F6F7F9 !important;
      border: #252B36 1px solid !important;
      color: #252B36 !important;
      transition: none !important;
    }


    .landing-buttons a.btn.btn-info:active {
      background-color: white !important;
    }


    .landing-buttons i.fa {
      padding-right: 10px;
      font-size: 16px;
    }


    /* Try to Wrangle Searchbar */
    .NavBar {
      background-color: inherit;
      position: relative;
    }


    .NavBar__search-boxes-both {
      margin: 0;
    }


    .NavBar--fixed-top {
      border-bottom: 0;
    }


    .NavBar__container {
      flex-direction: row-reverse;
    }


    @media (max-width: 767px) {
      .NavBar__search-form {
        margin: 0;
      }


      .landing-logo {
        width: 300px;
      }


      .row {
        width: 100%;
        min-width: unset;
        padding-left: 0;
        padding-right: 0;
      }
    }


    #changelog-preview {
        position: absolute;
  bottom: 64px;
  width: 100%;
  text-align: left;
  border-top: 1px solid var(--neutral-grey-7);
  border-bottom: 1px solid var(--neutral-grey-7);
  padding-top: 10px;
  padding-bottom: 10px;
    }


  </style>


<meta property="og:type" content="website" />
<meta property="og:locale" content="en_US">
<meta property="og:title" content="Censys Search" />
<meta property="og:description" content="Censys helps organizations, individuals, and researchers find and monitor every server on the Internet to reduce exposure and improve security." />
<meta property="og:url" content="https://search.censys.io/" />
<meta property="og:site_name" content="Censys" />
<meta property="og:image" content="https://search.censys.io/static/img/censys-small.png" />
<meta property="og:image:height" content="100" />
<meta property="og:image:width" content="100" />
<meta property="og:image" content="https://search.censys.io/static/img/icon.png" />
<meta property="og:image:height" content="400" />
<meta property="og:image:width" content="400" />
<meta property="og:image" content="https://search.censys.io/static/img/censys.png" />
<meta property="og:image:height" content="480" />
<meta property="og:image:width" content="1600" />


<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@censysio" />
<meta name="twitter:image" content="https://search.censys.io/static/img/icon.png" />
<meta name="twitter:image:alt" content="Censys Logo" />


<link rel="search" href="https://search.censys.io/static/xml/search.xml" type="application/opensearchdescription+xml" title="Censys">
<script src="https://unpkg.com/jquery@3.6.0/dist/jquery.min.js"></script>
<script>
    window.jQuery || document.write('<script src="https://search.censys.io/static/js/jquery.min.js"><\/script>');
  </script>
</head>
<body>
<div id="app-announcement">
<div class="container container-announcement">
<div class="row">
<div class="col-xs-10">
<strong>Happy Holidays from Censys!</strong>
<span>Save 30% on annual Censys Search Teams and Solo subscriptions with code <code>HappyHolidays23</code>
</div>
<div class="col-xs-2 text-right large">
<strong><a href="https://search.censys.io/subscriptions?annual_coupon=HappyHolidays23">Get 30% off <span class="fa fa-long-arrow-right"></span></a></strong>
</div>
</div>
</div>
</div>
<nav class="NavBar NavBar--fixed-top navbar-fixed-top">
<div class="container NavBar__container">
<div class="NavBar__unauthenticated-actions">
<a class="NavBar__register-link" href="https://search.censys.io/register">Register</a>
<a class="NavBar__login-link" href="https://censys.io/login?came_from=https%3A%2F%2Fsearch.censys.io&amp;from_censys_owned_external=True" onClick="window.location.href = 'https://censys.io/login?from_censys_owned_external=True&came_from=' + encodeURIComponent(window.location); return false;">Log In</a>
</div></div>
</nav>
<div id="content">
<div id="inner-content" class="container">
<div class="row">
<div class="col-md-12">
<a href="/">
<picture>
<img class="center-block landing-logo" alt="Censys Logo" src="https://search.censys.io/static/img/censys-2022.svg">
</picture>
</a>
<div class="NavBar__search-boxes-both">
<form id="search" class="NavBar__search-form" method="get" action="/search" spellcheck="false">
<div class="dropdown" id="index-picker">


<button id="NavBar__search-index-picker" class="NavBar__search-index-picker focus-outline" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="Resource Type Dropdown" type="button">
<span class="hide-on-mobile"><i class="fa fa-fw fa-search" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i></span>
<span id="resource-hosts" class="hide-on-mobile resource-button">Hosts</span>
<span class="hide-on-desktop"><i class="fa fa-fw fa-desktop" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i></span>
<span id="resource-certs" class="hide-on-mobile resource-button" hidden>Certificates</span>
<span class="hide-on-desktop" hidden><i class="fa fa-fw fa-certificate" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i></span>
<span class="hide-on-mobile"><i class="fa fa-fw fa-angle-down" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i></span>
</button>


<ul class="DropdownMenu dropdown-menu pull-left" aria-labelledby="NavBar__search-index-picker">
<li class="DropdownMenu__item DropdownMenu__item--no-link">
<div class="DropdownMenu__header">
Select Dataset
</div>
</li>
<li class="DropdownMenu__item">
<a id="dropdown-host" href="#">
<span class="DropdownMenu__item-icon"><i class="fa fa-fw fa-desktop" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i></span>
Hosts
</a>
</li>
<li class="DropdownMenu__item">
<a id="dropdown-certificates" href="#">
<span class="DropdownMenu__item-icon"><i class="fa fa-fw fa-certificate" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i></span>
Certificates
</a>
</li>
</ul>
</div>
<input name="resource" id="resource" aria-label="resource" value="hosts" hidden>
<div class="dropdown" id="search-settings">
<button id="search-settings-dropdown-menu" class="NavBar__button NavBar__button_border focus-outline" data-toggle="dropdown" aria-label="Search Settings" aria-haspopup="true" aria-expanded="false" type="button">
<i class="fa fa-fw fa-cog" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i>
</button>
<div>
<ul class="DropdownMenu dropdown-menu">
<li class="DropdownMenu__item DropdownMenu__item--no-link">
<div class="DropdownMenu__header">
Settings for Search Results
</div>
</li>
<li role="separator" class="DropdownMenu__divider"></li>
<li class="DropdownMenu__item DropdownMenu__item--no-link setting">
<div class="setting-label">Sort Order:</div>
<div class="btn-group btn-group-xs setting-values focus-outline">
<input type="radio" class="btn-check" name="sort" value="RELEVANCE" id="sort_order_rev" autocomplete="off" checked>
<label class="btn btn-white" for="sort_order_rev">Relevance</label>
<input tabindex="0" type="radio" class="btn-check" name="sort" value="ASCENDING" id="sort_order_asc" autocomplete="off">
<label class="btn btn-white" for="sort_order_asc">Ascending</label>
<input tabindex="0" type="radio" class="btn-check" name="sort" value="DESCENDING" id="sort_order_desc" autocomplete="off">
<label class="btn btn-white" for="sort_order_desc">Descending</label>
</div>
</li>
<li class="DropdownMenu__item DropdownMenu__item--no-link setting">
<div class="setting-label">Per Page:</div>
<div class="btn-group btn-group-xs setting-values focus-outline" role="group" aria-label="Results Per Page">
<input type="radio" class="btn-check" name="per_page" value="25" id="per_page_25" autocomplete="off" checked>
<label class="btn btn-white" for="per_page_25">25</label>
<input type="radio" class="btn-check" name="per_page" value="50" id="per_page_50" autocomplete="off">
<label class="btn btn-white" for="per_page_50">50</label>
<input type="radio" class="btn-check" name="per_page" value="100" id="per_page_100" autocomplete="off">
<label class="btn  btn-white" for="per_page_100">100</label>
</div>
</li>
<li class="DropdownMenu__item DropdownMenu__item--no-link setting">
<div class="setting-label">Virtual Hosts:<a href="https://support.censys.io/hc/en-us/articles/4411773845524" target="_blank" rel="noopener"><i class="fa fa-fw fa-question-circle" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom" title="Identified by both a name and an IP address.<br><small><strong>Click to learn more.</strong></small>"></i></a></div>
<div class="btn-group btn-group-xs setting-values focus-outline" role="group" aria-label="Options for Virtual Hosts">
<input type="radio" class="btn-check" name="virtual_hosts" value="EXCLUDE" id="virtual_hosts_exclude" autocomplete="off" checked>
<label class="btn btn-white" for="virtual_hosts_exclude">Exclude</label>
<input type="radio" class="btn-check" name="virtual_hosts" value="INCLUDE" id="virtual_hosts_include" autocomplete="off">
<label class="btn btn-white" for="virtual_hosts_include">Include</label>
<input type="radio" class="btn-check" name="virtual_hosts" value="ONLY" id="virtual_hosts_only" autocomplete="off">
<label class="btn  btn-white" for="virtual_hosts_only">Only</label>
</div>
</li>
</ul>
</div>
</div>
<input class="NavBar__search-box" type="text" placeholder="Search an IP address, name, protocol or field: value" aria-label="Search" name="q" id="q" value autocomplete="off" onfocus="this.selectionStart = this.selectionEnd = this.value.length;">
<button class="NavBar__search-clear focus-outline" id="clear-query-button" type="button" aria-label="Clear Query">
<i class="fa fa-fw fa-close" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i>
</button>
<button class="NavBar__search-multiline-toggle focus-outline" id="multiline-toggle" type="button" aria-label="Expand">
<i class="fa fa-fw fa-expand" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom" id="expand-icon"></i>
</button>
<div class="dropdown" id="export-query">


<button id="export-query-dropdown-menu" class="NavBar__button NavBar__button_border focus-outline" data-toggle="dropdown" aria-label="Export Query" aria-haspopup="true" aria-expanded="false" type="button">
<i class="fa fa-fw fa-terminal" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i>
</button>
<div>
<ul class="DropdownMenu dropdown-menu dropdown-menu-right">
<li class="DropdownMenu__item DropdownMenu__item--no-link">
<div class="DropdownMenu__header">
Export Query as cURL
<button class="NavBar__search-copy focus-outline" id="copy-query-button" type="button" aria-label="Copy Query" onclick="copyToClipboard('copy-text')">
<i class="fa fa-fw fa-clipboard" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i>
</button>
</div>
</li>
<li role="separator" class="DropdownMenu__divider"></li>
<li class="DropdownMenu__item DropdownMenu__item--no-link">
<div class="DropdownMenu__header">
</div>
<div class="DropdownMenu__inner-text-box">
<div class="copy-text">
<pre id="copy-text"> </pre>
</div>
</div>
<div class="DropdownMenu__link">
<a href="/account/api"> Get API Credentials </a>
</div>
</li>
</ul>
</div>
<script>
  function copyToClipboard(containerid) {
    var textToCopy = document.getElementById(containerid).innerText;
    navigator.clipboard.writeText(textToCopy);
  }
  </script>
<script>
    /* converts to api */
    var params = new URLSearchParams(window.location.search);


    function htmlEncode(s) {
      return s.replace(/&/g, '&amp;')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;')
        .replace(/'/g, '&quot;')
        .replace(/"/g, '&#34;');
    }


    function getV2ApiCurlString(apiResource) {
      var apiParams = new URLSearchParams();


      if (params.get("per_page") !== null) {
        apiParams.set("per_page", params.get("per_page"));
      }
      if (params.get("virtual_hosts") !== null) {
        apiParams.set("virtual_hosts", params.get("virtual_hosts"));
      }
      if (params.get("cursor") !== null) {
        apiParams.set("cursor", params.get("cursor"));
      }
      apiParams.set("q", params.get("q", ""));


      exportString = "curl -g -X 'GET' \\<br>";
      exportString += "'https://search.censys.io/api/v2/" + apiResource + "/search?";
      exportString += apiParams.toString() + "' \\<br>";
      exportString += "-H 'Accept: application/json' \\<br>";
      exportString += "--user \"$CENSYS_API_ID:$CENSYS_API_SECRET\"";
      return exportString
    }


    if (params.get("resource") === "hosts") {
      document.getElementById('copy-text').innerHTML = getV2ApiCurlString("hosts");
    }
    else if (params.get("resource") === "certificates") {
      document.getElementById('copy-text').innerHTML = getV2ApiCurlString("certificates");
    }
  </script>
<script type="text/javascript">
  /* hides button if no query */
    var url = window.location.href;
    var msg = document.getElementById('export-query-dropdown-menu');
    /* update to check for resource=hosts and certs instead of length */
    if( url.search("resource=hosts") != -1 ||
      url.search("resource=certificates") != -1 )  {
        msg.style.display = "block";
    }
    else {
      msg.style.display = "none";
    }
  </script>
</div>
<input class="NavBar__search-submit focus-outline" id="submit-button" type="submit" value="Search">
</form>
<div class="hide-on-mobile hide-on-desktop" id="msf">
<textarea rows="1" class="NavBar__search-box-multi" placeholder="Press enter for more lines; Shift+Enter executes the search from this box." aria-label="Search" name="qm" id="qm" autocomplete="off" onfocus="this.selectionStart = this.selectionEnd = this.value.length;">
       
        </textarea>
</div>
</div>
<p class="details">
<span><i class="fa fa-fw fa-gears" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i><strong>Services:</strong> 3.4B</span>
<span><i class="fa fa-fw fa-desktop" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i><strong>IPv4 Hosts:</strong> 250.4M</span>
<span><i class="fa fa-fw fa-desktop" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i><strong>IPv6 Hosts:</strong> 175.1M</span>
<span><i class="fa fa-fw fa-id-card-o" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i><strong>Virtual Hosts:</strong> 1.2B</span>
</p>
<div class="landing-buttons">
<a id="documentation-link" class="btn btn-info focus-outline" href="https://search.censys.io/search/getting-started">
<i class="fa fa-fw fa-book" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i> Getting Started
</a>
<a class="btn btn-info focus-outline" href="https://search.censys.io/subscriptions">
<i class="fa fa-fw fa-unlock" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i> Upgrade Account
</a>
<a class="btn btn-info focus-outline" href="https://workshop.censys.io/">
<i class="fa fa-fw fa-flask" aria-hidden="true" data-html="true" data-toggle="tooltip" data-placement="bottom"></i> Try Beta Features
</a>
</div>
</div>
</div>
</div>
<div id="changelog-preview">
<div class="container">
<div class="row">
<div class="col-xs-12">
<b>Latest Update</b> (5 days ago)
<div> Started scanning Checkpoint Topology </div>
<a href="/search/changelog?resources=hosts">See All Changes</a>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="footer__container container">
<div class="row">
<div class="col-md-6 left">
<span class="part">
<a href="https://censys.com/resources/" target="_blank" rel="noopener">Resource Hub</a>
</span>

<span class="part">
<a href="https://censys.com/exposure-management/" target="_blank" rel="noopener">Exposure Management</a>
</span>

<span class="part">
<a href="https://censys.com/federal/" target="_blank" rel="noopener">Federal</a>
</span>

<span class="part">
<a href="https://support.censys.io/hc/en-us/articles/360038761891-Research-Access-to-Censys-Data" target="_blank" rel="noopener">Research Access</a>
</span>
</div>
<div class="col-md-6 right">
<span class="part">
Need Help?
<a href="https://support.censys.io/" target="_blank" rel="noopener">Help Center</a>
or
<a href="/cdn-cgi/l/email-protection#b2c1c7c2c2ddc0c6f2d1d7dcc1cbc19cdbdd"><span class="__cf_email__" data-cfemail="9ae9efeaeaf5e8eedaf9fff4e9e3e9b4f3f5">[email&#160;protected]</span></a>
</span>
|
<span class="part">
&copy; 2023 Censys
</span>
</div>
</div>
</div>
</footer>


<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script charset="utf-8" src="https://search.censys.io/static/js/bootstrap.min.js"></script>
<script src="https://search.censys.io/static/js/material.min.js"></script>
<script src="https://search.censys.io/static/js/material-kit.min.js" type="text/javascript"></script>
<script src="https://unpkg.com/@highlightjs/cdn-assets@11.4.0/highlight.min.js"></script>
<script>
    // If hljs is defined
    if (typeof hljs !== 'undefined') {
      // Highlight all code blocks
      hljs.highlightAll();
    }
    </script>
<script>
    $(document).ready(function(){
        $('[data-toggle="tooltip"]').tooltip();


        $('#quota-alert').on('closed.bs.alert', function () {
            $.post("https://search.censys.io/account/_dismiss_quota_alert",
                {"csrf_token": "2ea994859c5adc3a289320806db96809b63e8674"},
                function (result) { }
            );
        });
    });
    </script>
<script>
    // Fixes Settings modal so that clicking options doesn't automatically close it.
    $(document).on('click', '#search-settings .dropdown-menu', function (e) {
      e.stopPropagation();
    });
    $(document).on('click', '#export-query .dropdown-menu-right', function (e) {
      e.stopPropagation();
    });


    // Event handler for closing the index picker dropdown when tab
    // focus moves away from the dropdown or the dropdown button
    $(document).on('blur', '#index-picker', function (e) {
      var currentFocus = e.relatedTarget;
      var newFocusContained = $.contains(document.getElementById('index-picker'), currentFocus)
      var indexPickerOpen = $("#index-picker").hasClass('open')


      // Focus will be null if the menu is being navigated by mouse cursor.
      // We don't want to automatically close the menu in such case
      if (currentFocus !== null && !newFocusContained && indexPickerOpen) {
        // If we're focusing away from the dropdown and the dropdown is
        // opened, then close the dropdown by toggling the state
        $("#NavBar__search-index-picker").dropdown('toggle');
      }
    });


    // Event handler for closing the search settings dropdown when tab
    // focus moves away from the dropdown or the dropdown button
    $(document).on('blur', '#search-settings', function (e) {
      var currentFocus = e.relatedTarget;
      var newFocusContained = $.contains(document.getElementById('search-settings'), currentFocus)
      var searchSettingsOpen = $("#search-settings").hasClass('open')


      // Focus will be null if the menu is being navigated by mouse cursor.
      // We don't want to automatically close the menu in such case
      if (currentFocus !== null && !newFocusContained && searchSettingsOpen) {
        // If we're focusing away from the dropdown and the dropdown is
        // opened, then close the dropdown by toggling the state
        $("#search-settings-dropdown-menu").dropdown('toggle');
      }
    });


    // Event handler for closing the query export dropdown when tab
    // focus moves away from the dropdown or the dropdown button
    $(document).on('blur', '#export-query', function (e) {
      var currentFocus = e.relatedTarget;
      var newFocusContained = $.contains(document.getElementById('export-query'), currentFocus)
      var exportQueryOpen = $("#export-query").hasClass('open')


      // Focus will be null if the menu is being navigated by mouse cursor.
      // We don't want to automatically close the menu in such case
      if (currentFocus !== null && !newFocusContained && exportQueryOpen) {
        // If we're focusing away from the dropdown and the dropdown is
        // opened, then close the dropdown by toggling the state
        $("#export-query-dropdown-menu").dropdown('toggle');
      }
    });


    $("#search").submit(function(e) {
      let cacheOff = $("#bypass_cache_off");
      if (cacheOff.length > 0 && cacheOff.is(":checked")) {
        cacheOff.attr("disabled", true);
      }
    });


    function updateMainFromMulti() {
      // View other icons: https://stackoverflow.com/a/18931703/6909734
      $("#q").val($("#qm").val().replace(/\n/g, " \u21A9 "));
    }


    $("#qm").keydown(function(event) {
      if (event.keyCode == 13 && event.shiftKey) {
        event.preventDefault();
        $("#search").submit();
      }
    });


    $("#qm").keyup(function() {
      updateMainFromMulti();
    });


    $("#q").focus(function(e) {
      // Hide expanded form when search bar is clicked
      var multiSearchForm = $("#msf");
      if (!multiSearchForm.hasClass("hide-on-mobile hide-on-desktop")) {
        $("#multiline-toggle").click()
      }
    });


    $("#clear-query-button").click(function(e) {
      e.preventDefault();
      $("#q").val("");
      $("#qm").val("");
      $("#q").focus();
    });


    $("#multiline-toggle").click(function(e) {
      e.preventDefault();
      var multiSearchForm = $("#msf");
      var multiToggleButton = $("#multiline-toggle");
      var mainSearchBar = $("#q");
      var multiSearchBar = $("#qm");
      var expandIcon = $("#expand-icon");
      if (multiSearchForm.hasClass("hide-on-mobile hide-on-desktop")) {
          // do expand
          expandIcon.attr("class", "fa fa-compress");
          multiSearchForm.attr("class", "NavBar__multi-search-form");
          multiToggleButton.attr("class", "NavBar__search-multiline-toggle-enabled focus-outline");
          mainSearchBar.attr("readonly", true);
          mainSearchBar.css("color", "#cbcbcb");
          var mainQuery = mainSearchBar.val();
          if (multiSearchBar.val() !== mainQuery || mainQuery.includes(" \u21A9 ")) {
              multiSearchBar.val(mainQuery.replaceAll(" \u21A9 ", "\r\n"));
          }
          multiSearchBar.focus();
          // If there aren't autocomplete suggestions,
          // the textarea won't expand right away without this !
          multiSearchBar.css("height", "50px");
      } else {
          // do shrink
          expandIcon.attr("class", "fa fa-expand");
          multiSearchForm.attr("class", "hide-on-mobile hide-on-desktop");
          multiToggleButton.attr("class", "NavBar__search-multiline-toggle focus-outline");
          mainSearchBar.attr("readonly", false);
          mainSearchBar.css("color", "black");
          mainSearchBar.focus();
      }
    });


    // Grow size of multiline box dynamically
    function textAreaAdjust(element){
      // This redundant assignment is necessary
      // or the input won't shrink when removing lines of text.
      // -- minimum size of 50 to make it clear the box can expand.
      element.style.height = "50px";
      element.style.height = Math.min(200, element.scrollHeight)+"px";
    }


    function createRedirectURL() {
      var url = new URL(window.location.href);
      var params = new URLSearchParams(url.search);
      var resource = $('#resource').val()
      params.set("resource", resource);
      params.delete("cursor");


      // Handle redirects AWAY from legacy certs pages
      if (url.pathname.includes('/certificates-legacy')) {
        if (url.pathname.includes('definitions')) {
          url.pathname = '/search/definitions'
        } else if (url.pathname.includes('examples')) {
          url.pathname = '/search/examples'
        } else if (url.pathname.includes('help')) {
          url.pathname = '/search/language'
        } else if (url.pathname.includes('report')) {
          url.pathname = 'search/report'
        } else {
          url.pathname = '/search'
          if (!params.has("q")) {
            params.set("q", $('#q').val())
          }
        }
      // Handle redirect TO legacy certificates pages
      } else if (resource === 'certificates-legacy') {
        if (url.pathname.includes('definitions')) {
          url.pathname = '/certificates-legacy/help/definitions'
        } else if (url.pathname.includes('examples')) {
          url.pathname = '/certificates-legacy/help/examples'
        } else if (url.pathname.includes('language')) {
          url.pathname = '/certificates-legacy/help'
        } else if (url.pathname.includes('report')) {
          url.pathname = '/certificates-legacy/report'
        } else {
          url.pathname = '/certificates-legacy' // results
          if (!params.has("q")) {
            params.set("q", $('#q').val())
          }
        }
      }


      if (url.pathname.includes('/certificates/') || url.pathname.includes('/hosts/')) {
        url.pathname = '/search'
        if (!params.has("q")) {
          params.set("q", $('#q').val())
        }
      }


      url.search = params.toString();
      return url;
    }


    $('#dropdown-host').click(function(e) {
      $('#resource').attr('value', 'hosts');
     
        $('#search-settings').show();
        $('#resource-hosts').show();
        $('#resource-certs').hide();
        $('#resource-certs-legacy').hide();
        $('input.NavBar__search-box').attr('placeholder', 'Search an IP address, name, protocol or field: value')
        var docLink = $('#documentation-link').attr("href");
        var link = new URL(docLink);
        var linkParams = new URLSearchParams(link.search);
        linkParams.set("resource", $('#resource').val());
        linkParams.delete("cursor");
        link.search = linkParams.toString();
        link.pathname = '/search/definitions'
        $('#documentation-link').attr('href', link.toString())
     
    })




    $('#dropdown-certificates-legacy').click(function(e) {
      $('#resource').attr('value', 'certificates-legacy');
     
        $('#search-settings').hide();
        $('#resource-certs-legacy').show();
        $('#resource-certs').hide();
        $('#resource-hosts').hide();
        $('input.NavBar__search-box').attr('placeholder', 'Search a name on a certificate or other attribute')
        var docLink = $('#documentation-link').attr("href");
        var link = new URL(docLink);
        var linkParams = new URLSearchParams(link.search);
        linkParams.set("resource", $('#resource').val());
        linkParams.delete("cursor");
        link.search = linkParams.toString();
        link.pathname = '/certificates-legacy/help/definitions'
        $('#documentation-link').attr('href', link.toString())
     
    })


    $('#dropdown-certificates').click(function(e) {
      $('#resource').attr('value', 'certificates');
     
        $('#search-settings').hide();
        $('#resource-certs').show();
        $('#resource-hosts').hide();
        $('#resource-certs-legacy').hide();
        $('input.NavBar__search-box').attr('placeholder', 'Search a name on a certificate or other attribute')
        var docLink = $('#documentation-link').attr("href");
        var link = new URL(docLink);
        var linkParams = new URLSearchParams(link.search);
        linkParams.set("resource", $('#resource').val());
        linkParams.delete("cursor");
        link.search = linkParams.toString();
        link.pathname = '/search/definitions'
        $('#documentation-link').attr('href', link.toString())
     
    })
  </script>
<script charset="utf-8" src="https://search.censys.io/static/js/jquery.autocomplete.min.js"></script>
<script>
  function logicSuggestion(statement) {
    return {
      data: {
        category: "<i class=\"fa fa-fw fa-toggle-on\" aria-hidden=\"true\"></i> Boolean Logic",
      },
      value: statement,
    };
  }


  function serviceNameSuggestion(serviceName) {
    return {
      data: {
        category: "<i class=\"fa fa-fw fa-server\" aria-hidden=\"true\"></i> Service Name",
      },
      value: serviceName,
    };
  }


  function _lookupFilter(suggestion, originalQuery, queryLowerCase) {
    return suggestion.value.toLowerCase().indexOf(queryLowerCase) !== -1;
  };


  var serviceNameSuggestions = $.map(["HTTP", "SSH", "SMTP", "FTP", "DNS"], serviceNameSuggestion);
  var logicSuggestions = $.map(["and", "or"], logicSuggestion);
  var urls = {
    "hosts": "https://search.censys.io/static/data/autocomplete-hosts.json?version=daf8856f5991b6884e887c9ff3f1983e",
    "certificates-legacy": "https://search.censys.io/static/data/autocomplete-certificates.json?version=e7defab6f2a77da0b9230d823fb97ae7",
  };


  var fieldSuggestions = {};
  var resource = $('#resource').val()
  var resources = [
    'certificates-legacy',
    'hosts',
  ]


  resources.forEach(function(val, index) {
    $.ajax({
      url: urls[val],
      success: function (data) {
        if (data === undefined) {
          return;
        }
        fieldSuggestions[val] = data.data;
      }
    });
  })


  function beforeRenderCallback(elemId, isMultiline) {
    return function (_, suggestions) {
      if (isMultiline) {
        // Adjust size before displaying autcomplete, or
        // Suggestions will sometimes be offset
        textAreaAdjust(this);
      }
      if (suggestions) {
        $(elemId).css("border-bottom-left-radius", "0pt");
      }
    }
  }


  function onHideCallback(elemId) {
    return function (_) {
      $(elemId).css("border-bottom-left-radius", "4pt");
    }
  }


  function onSelectCallback(isMultiline) {
    return function (_) {
      this.focus();
      this.value = this.value;


      if (isMultiline) {
        updateMainFromMulti();
      }
    }
  }


  function BindAutocomplete() {
    var resource = $('#resource').val()


    var opts = {
      serviceUrl: "/api/ui/suggestions",
      params: {resource: resource},
      deferRequestBy: 80,
    };
   
    $("#q").focus();


    $("#q").autocomplete({
      ...opts,
      maxHeight: 600,
      tabDisabled: true,
      delimiter: /:|\s/gmi,
      beforeRender: beforeRenderCallback("#q", false),
      onHide:       onHideCallback("#q"),
      onSelect:     onSelectCallback(false),
    });


    $("#qm").autocomplete({
      ...opts,
      maxHeight: 600,
      tabDisabled: true,
      delimiter: /:|\s/gmi,
      beforeRender: beforeRenderCallback("#qm", true),
      onHide:       onHideCallback("#qm"),
      onSelect:     onSelectCallback(true),
    });
  }
 
  // Create click handlers to re-bind the autocompelete options
  // When a new resource type is selected
  $('#dropdown-host').click(function(e) {
    BindAutocomplete();
  });


  $('#dropdown-certificates').click(function(e) {
    BindAutocomplete();
  });
 
  // Bind the autocomplete to the initial page state
  BindAutocomplete();
</script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NVFXGE3YHC"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-NVFXGE3YHC')
 
</script>
</body>
</html>

Last updated

Copyright NetNut LTD