Skip to content

Hostname

book2go.hr

Last fetched

book2go.hr resolves to 162.55.122.154, announced in 162.55.0.0/16 by HETZNER-AS - Hetzner Online GmbH in DE. book2go.hr is not listed on any threat feed indexed by WhisperGraph; reconciled level NONE.

Threat posture

0threat score (procedure-native scale)

NONE

No threats observed.

Threat feeds listing this
0
Verdict coverage
known-clean

Nutrition Label

WHISPER CANON · book2go.hrRouting diversity1.5/10Peering density8.1/10MOAS conflict✓ noneThreat-feed listings10.0/10WHOIS transparency6.7/10Resolver footprint7.8/10canon.whisper.security/host/book2go.hr

Resolution chain

IPv6 resolution

No AAAA record for book2go.hr is recorded in WhisperGraph.

Attribution

hetzner

MAIL_RECEIVER, ORIGIN_AS

WHOIS identity

Registrar
registrar:carnet
Registrant organisation
book2go j.d.o.o.
Contact emails
switch@switch-one.com

Company

Company
Book2go
Headquarters
Karlovac, Croatia

Technology

Book2go has been observed using 10 technologies somewhere in its estate. This is observed use, not an exposure finding.

Subdomains

Mail and authentication

DNSSEC

WhisperGraph records no DNSSEC signature for book2go.hr.

DKIM signing

No DKIM signing vendor is attributed to book2go.hr in WhisperGraph.

Nameservers

  • ns1.switchone2.fedsrv.com
  • a.root-servers.net
  • b.root-servers.net
  • c.root-servers.net
  • d.root-servers.net
  • e.root-servers.net
  • f.root-servers.net
  • g.root-servers.net
  • h.root-servers.net
  • i.root-servers.net
  • j.root-servers.net
  • k.root-servers.net
  • l.root-servers.net
  • m.root-servers.net

MX records

  • book2go.hr

SPF policy

  • a: book2go.hr
  • mx: book2go.hr
  • ip: 162.55.122.154
  • ip: 188.138.25.24
  • ip: 62.75.207.28
  • ip: 85.25.218.230

Threat-feed evidence

History

Related pages

Pivot from book2go.hr into the addresses, networks and registries it depends on.

Queries

This hostname's full card — resolution chain, registration, mail policy, DNSSEC and mail authentication.


MATCH (h:HOSTNAME {name: $host})
OPTIONAL MATCH (h)-[:RESOLVES_TO]->(ip:IPV4)-[:ANNOUNCED_BY]->(ap:ANNOUNCED_PREFIX)
OPTIONAL MATCH (a:ASN)-[:ROUTES]->(ap)
OPTIONAL MATCH (a)-[:HAS_NAME]->(an:ASN_NAME)
OPTIONAL MATCH (ip)-[:LOCATED_IN]->(city:CITY)
OPTIONAL MATCH (ip)-[:HAS_COUNTRY]->(ipc:COUNTRY)
WITH h, ip, ap, a, an, city, ipc
LIMIT 20
WITH h,
     collect({ip: ip.name, prefix: ap.name, asn: a.name, network: an.name, city: city.name, country: ipc.name}) AS resolutions,
     collect(a.name) AS asnNames,
     collect(ap.name) AS prefixNames,
     collect(ap.isMoas) AS moasFlags,
     collect(ap.rpkiStatus) AS rpkiStatuses,
     head(collect(a)) AS primaryAsn,
     head(collect(ap)) AS primaryPrefix
OPTIONAL MATCH (primaryPrefix)-[:CONFLICTS_WITH]->(conflict:ASN)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn,
     collect(conflict.name) AS conflictAsns
OPTIONAL MATCH (h)-[:HAS_REGISTRAR]->(reg:REGISTRAR)
OPTIONAL MATCH (h)-[:REGISTERED_BY]->(org:ORGANIZATION)
OPTIONAL MATCH (h)-[:CHILD_OF]->(tld:TLD)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn, conflictAsns,
     collect(reg.name) AS registrars,
     collect(org.name) AS organizations,
     collect(tld.name) AS tlds
OPTIONAL MATCH (h)-[:HAS_EMAIL]->(em:EMAIL)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn, conflictAsns,
     registrars, organizations, tlds,
     collect(em.name) AS emails
OPTIONAL MATCH (h)-[:HAS_PHONE]->(ph:PHONE)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn, conflictAsns,
     registrars, organizations, tlds, emails,
     count(ph) AS phoneCount
OPTIONAL MATCH (h)<-[:MAIL_FOR]-(mx:HOSTNAME)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn, conflictAsns,
     registrars, organizations, tlds, emails, phoneCount,
     collect(mx.name)[0..20] AS mxHosts
OPTIONAL MATCH (h)<-[:NAMESERVER_FOR]-(ns:HOSTNAME)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn, conflictAsns,
     registrars, organizations, tlds, emails, phoneCount, mxHosts,
     collect(ns.name) AS nameservers
OPTIONAL MATCH (h)-[spf:SPF_A|SPF_EXISTS|SPF_INCLUDE|SPF_IP|SPF_MX|SPF_REDIRECT]->(spfTarget)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn, conflictAsns,
     registrars, organizations, tlds, emails, phoneCount, mxHosts, nameservers,
     collect({mechanism: type(spf), target: spfTarget.name})[0..50] AS spf
OPTIONAL MATCH (h)-[:SIGNED_WITH]->(alg:DNSSEC_ALGORITHM)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn, conflictAsns,
     registrars, organizations, tlds, emails, phoneCount, mxHosts, nameservers, spf,
     collect(alg.name) AS dnssecAlgorithms
OPTIONAL MATCH (h)-[:DMARC_REPORTS_TO]->(dm:DMARC_RECIPIENT)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn, conflictAsns,
     registrars, organizations, tlds, emails, phoneCount, mxHosts, nameservers, spf, dnssecAlgorithms,
     collect(dm.name)[0..5] AS dmarcRecipients
OPTIONAL MATCH (h)-[:DKIM_SIGNED_BY]->(dk:VENDOR)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn, conflictAsns,
     registrars, organizations, tlds, emails, phoneCount, mxHosts, nameservers, spf, dnssecAlgorithms,
     dmarcRecipients,
     collect(coalesce(dk.displayName, dk.name))[0..5] AS dkimVendors
OPTIONAL MATCH (h)-[:HAS_SIGNAL]->(hs:THREAT_SIGNAL_TYPE)
WITH h, resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, primaryAsn, conflictAsns,
     registrars, organizations, tlds, emails, phoneCount, mxHosts, nameservers, spf, dnssecAlgorithms,
     dmarcRecipients, dkimVendors,
     collect(hs.name) AS dnsSignals
CALL { WITH primaryAsn MATCH (primaryAsn)-[:BGP_NEIGHBOR]-(peer:ASN) RETURN count(peer) AS asnPeerCount }
RETURN h.name AS name,
       h.rank AS rank,
       h.verdictLevel AS verdictLevel,
       h.verdictScore AS verdictScore,
       h.verdictBlocking AS verdictBlocking,
       h.verdictCoverage AS verdictCoverage,
       h.verdictAdvisory AS verdictAdvisory,
       h.threatSources AS threatSources,
       h.threatFirstSeen AS threatFirstSeen,
       h.threatLastSeen AS threatLastSeen,
       h.isTor AS isTor,
       h.isVpn AS isVpn,
       h.isProxy AS isProxy,
       h.isC2 AS isC2,
       h.isPhishing AS isPhishing,
       resolutions, asnNames, prefixNames, moasFlags, rpkiStatuses, conflictAsns,
       registrars, organizations, tlds, emails, phoneCount, mxHosts, nameservers, spf,
       dnssecAlgorithms, dmarcRecipients, dkimVendors, dnsSignals,
       h.companyName AS companyName,
       h.companyIndustry AS companyIndustry,
       h.companyHqCountry AS companyHqCountry,
       h.companyHqCity AS companyHqCity,
       asnPeerCount
Run yourself →

The observed subdomain count, to depth 3.


MATCH (h:HOSTNAME {name: $host})
CALL { WITH h MATCH (h)<-[:CHILD_OF*1..3]-(sub:HOSTNAME) RETURN count(sub) AS subdomainCount }
RETURN subdomainCount
Run yourself →

Technologies the company behind this domain has been observed running, most widely adopted first.


MATCH (:HOSTNAME {name: $host})-[:RUNS_TECHNOLOGY]->(t:TECHNOLOGY)
WITH t.name AS name, t.category AS category, t.adopterCount AS adopters
ORDER BY adopters DESC, name
WITH collect({name: name, category: category}) AS technologies, count(*) AS total
RETURN total, technologies[0..20] AS technologies
Run yourself →

Peer companies (outbound SIMILAR_TO).

MATCH (:HOSTNAME {name: $host})-[:SIMILAR_TO]->(peer:HOSTNAME) RETURN peer.name AS host ORDER BY host LIMIT 8
Run yourself →

The parent company's domain and this company's domain portfolio (PARENT_OF).


MATCH (h:HOSTNAME {name: $host})
OPTIONAL MATCH (h)<-[:PARENT_OF]-(parent:HOSTNAME)
WITH h, collect({host: parent.name, company: parent.companyName})[0..3] AS parents
OPTIONAL MATCH (h)-[:PARENT_OF]->(child:HOSTNAME)
RETURN parents, collect({host: child.name, company: child.companyName})[0..10] AS portfolio
Run yourself →

Or query Whisper from your own LLM workflow via the Whisper MCP server.