History Suggestions
  • {{ item.domain }} {{ new Date(item.timestamp * 1000).toLocaleDateString() }}
{{ progress.message }} {{ progress.step }}/{{ progress.total }}
{{ progress.detail }}
Refreshing scan data...

Run searches locally

Periscope connects to your local terminal to run `dig` and `whois` commands securely.

curl -sL https://periscope.run/boot.sh | bash

Network Connection Failed

Unable to connect to local bridge at 127.0.0.1:8989

Run searches locally

Periscope connects to your local terminal to run `dig` and `whois` commands securely.

curl -sL https://periscope.run/boot.sh | bash

Local Bridge Active

Waiting for target coordinates...

Connecting to Local Bridge...

{{ new Date(response.timestamp * 1000).toLocaleString() }}

Domain Not Registered

The domain {{ response.root_domain }} does not exist.

This domain is not currently registered with any registrar.

{{ new Date(response.timestamp * 1000).toLocaleString() }}
DNS records queried via {{ response.dns_server }}
Scanning subdomain {{ response.target_host }} of {{ response.root_domain }}
Redirects
Hidden from Search Engines ({{ response.indexability.reasons.map(r => r.detail).join(', ') }})
{{ response.request.status_code }} {{ response.request.status_text }} {{ response.request.protocol }} {{ response.request.remote_address }}
{{ response.request.timing.total }}ms

SSL Certificate

Expires

{{ response.ssl.expires }}

Days Left

{{ response.ssl.days_remaining }}

Issuer

{{ response.ssl.issuer }}

Platform

{{ response.cms ? response.cms.name : 'HTML' }} Multisite Multi-tenant v{{ response.cms.version }} {{ response.infrastructure.language }}

Infrastructure

Host

{{ response.infrastructure.host }}

CDN

{{ response.infrastructure.cdn }}

Server

{{ response.infrastructure.server }}

Security Headers

{{ response.security.score.value }}/{{ response.security.score.total }}
HSTS
CSP
X-Frame-Options
X-Content-Type-Options
Referrer-Policy
Permissions-Policy

Technology

Frameworks

{{ fw }}

Analytics

{{ a.name }}({{ a.id }})

E-commerce

{{ ec }}

Widgets

{{ w }}

Metadata

robots.txt ({{ response.metadata.robots_txt.disallow_count }} rules)
sitemap.xml ({{ response.metadata.sitemap.url_count }} URLs)
security.txt
ads.txt ({{ response.metadata.ads_txt.seller_count }} sellers)
app-ads.txt ({{ response.metadata.app_ads_txt.seller_count }} sellers)
apple-app-site-association ({{ response.metadata.app_site_association.app_ids.length }} apps)
assetlinks.json ({{ response.metadata.assetlinks.packages.length }} apps)
manifest.json ({{ response.metadata.manifest.display }})
webfinger (Fediverse)
change-password (redirects)
humans.txt
browserconfig.xml
keybase.txt ({{ response.metadata.keybase_txt.username }})
Open Graph
Twitter Card
Favicon
robots.txt
sitemap.xml
security.txt
ads.txt
app-ads.txt
apple-app-site-association
assetlinks.json
manifest.json
webfinger
change-password
humans.txt
browserconfig.xml
keybase.txt
Open Graph
Twitter Card
Favicon

Domain Registration

Root: {{ response.root_domain }}

{{ record.name }}
{{ record.value }}

Network Coordinates

Headers

{{ key }} {{ value }}

SPF Analysis

Valid Valid with warnings Invalid {{ spfAnalysis.dnsLookups }}/10 lookups
{{ error }}
{{ warning }}
{{ m.raw }} {{ m.provider }}

{{ m.description }}

{{ m.qualifierDesc }}

Email Health

{{ emailHealthAnalysis.grade }} {{ emailHealthAnalysis.totalScore }}/{{ emailHealthAnalysis.maxScore }}
MX Records

{{ emailHealthAnalysis.mxCount }} mail server(s) configured

+10 pts
SPF

{{ emailHealthAnalysis.spf.details.join(' · ') }} No SPF record found

+{{ emailHealthAnalysis.spf.score }}/25 pts
DKIM

Selectors: {{ emailHealthAnalysis.dkim.selectors.join(', ') }} No DKIM records found

+{{ emailHealthAnalysis.dkim.score }}/30 pts
DMARC

{{ emailHealthAnalysis.dmarc.details.join(' · ') }} No DMARC record found

+{{ emailHealthAnalysis.dmarc.score }}/35 pts
Recommendations
  • {{ rec }}

DNS Records

Type Name Value
{{ record.type }} {{ record.name }} {{ record.value }}

BIND Zone File

{{ response.zone }}
Dig {{ contextMenu.value }}
View Whois {{ contextMenu.value }}
Copy Value

{{ dialog.title }}

{{ dialog.tabs[dialog.activeTab] }}
{{ dialog.content }}

Scan Log

  • {{ item.domain }}

    {{ new Date(item.timestamp * 1000).toLocaleString() }}

{{ historySearch || historyFilters.existence !== 'all' || historyFilters.platform !== 'all' || historyFilters.scanCount !== 'all' || historyFilters.indexability !== 'all' ? 'No matches found' : 'Log empty' }}

Snapshots: {{ domain }}

  • {{ new Date(item.timestamp * 1000).toLocaleString() }}

Help

Keyboard Shortcuts

Focus search /
Close modal Esc
Navigate lists
Select item Enter
Show help ?
Scan log
⌘ K

CLI Usage

Scan a domain

php ~/.periscope/engine.php example.com

Start local server

curl -sL https://periscope.run/boot.sh | bash

Use local UI during development

./boot.sh --local

Bulk upgrade historical scans

php ~/.periscope/engine.php action=bulk_upgrade

Database

Path {{ dbInfo.path }}
Size {{ formatBytes(dbInfo.size) }}
Stored Scans {{ dbInfo.scanCount.toLocaleString() }}

Raw Data

Path {{ scansInfo.path }}
Storage {{ formatBytes(scansInfo.size) }}

Open Graph Preview

{{ domain }}

{{ response.metadata.meta_tags.open_graph.title || response.metadata.meta_tags.basic?.title || 'No title' }}

{{ response.metadata.meta_tags.open_graph.description }}

og:type {{ response.metadata.meta_tags.open_graph.type }}
og:image {{ response.metadata.meta_tags.open_graph.image }}
Stored {{ response.metadata.meta_tags.open_graph.image_extension?.toUpperCase() }} · {{ formatBytes(response.metadata.meta_tags.open_graph.image_size) }}

Twitter Card Preview

{{ domain }}

{{ response.metadata.meta_tags.twitter.title || response.metadata.meta_tags.open_graph?.title || response.metadata.meta_tags.basic?.title || 'No title' }}

twitter:card {{ response.metadata.meta_tags.twitter.card }}
twitter:site {{ response.metadata.meta_tags.twitter.site }}
Stored {{ response.metadata.meta_tags.twitter.image_extension?.toUpperCase() }} · {{ formatBytes(response.metadata.meta_tags.twitter.image_size) }}
Stored (from OG) {{ response.metadata.meta_tags.open_graph.image_extension?.toUpperCase() }} · {{ formatBytes(response.metadata.meta_tags.open_graph.image_size) }}

Favicon Preview

Favicon 16px
Favicon 32px
Favicon 64px
Source {{ response.metadata.favicon.source }}
Format {{ response.metadata.favicon.extension }}
MD5 Hash {{ response.metadata.favicon.hash }}
Size {{ formatBytes(response.metadata.favicon.size) }}

WordPress Plugins

{{ response.cms.plugins.length }} plugin{{ response.cms.plugins.length !== 1 ? 's' : '' }} detected from HTML source

  • {{ getPluginName(plugin) || plugin }}

    {{ plugin }}

{{ snackbar.message }}