View Source CensysEx.Hosts (censys_ex v2.0.1)

CensysEx wrapper for the search.censys.io v2 API for the "hosts" resource

Summary

Types

Values that determine how to query Virtual Hosts. :exclude will ignore any virtual hosts entries, :include virtual hosts will be present in the returned list of hits, :only will return only virtual hosts

Functions

Hits the Censys Hosts aggregate API. Optionally control number of buckets returned

Hits the Censys Hosts view names API. Returning a stream of names for that IP.

Hits the Censys Hosts search API. Returns a stream of results for your query

Hits the Censys Hosts view API. Returning full information about an IP at a given time

Types

@type v_hosts() :: :exclude | :include | :only

Values that determine how to query Virtual Hosts. :exclude will ignore any virtual hosts entries, :include virtual hosts will be present in the returned list of hits, :only will return only virtual hosts

Functions

Link to this function

aggregate(client, field, query \\ nil, num_buckets \\ 50, virtual_hosts \\ :exclude)

View Source
@spec aggregate(CensysEx.API.t(), String.t(), String.t() | nil, integer(), v_hosts()) ::
  CensysEx.result()

Hits the Censys Hosts aggregate API. Optionally control number of buckets returned

Examples

CensysEx.Hosts.aggregate("location.country_code", "services.service_name: MEMCACHED")

CensysEx.Hosts.aggregate("location.country_code", "services.service_name: MEMCACHED", 1000)
Link to this function

diff(client, ip, ip_b \\ nil, at_time \\ nil, at_time_b \\ nil)

View Source
@spec diff(
  CensysEx.API.t(),
  String.t(),
  String.t() | nil,
  DateTime.t() | nil,
  DateTime.t() | nil
) ::
  CensysEx.result()

Hits the Censys Hosts diff API.

Examples

# diff the current host with it self 🤷
CensysEx.Hosts.diff("8.8.8.8")

# diff two hosts
CensysEx.Hosts.diff("8.8.8.8", "1.1.1.1")

# diff a host with itself at a time in the past
CensysEx.Hosts.diff("8.8.8.8", nil, ~U[2021-06-07 12:53:27.450073Z])

# diff two hosts in the past
CensysEx.Hosts.diff("8.8.8.8", "8.8.4.4" ~U[2021-06-07 12:53:27.450073Z], ~U[2021-06-07 12:53:27.450073Z])

Hits the Censys Hosts view names API. Returning a stream of names for that IP.

Examples

CensysEx.Hosts.names("127.0.0.1")
Link to this function

search(client, query \\ "", per_page \\ 100, virtual_hosts \\ :exclude)

View Source

Hits the Censys Hosts search API. Returns a stream of results for your query

Examples

CensysEx.Hosts.search("same_service(service_name: SSH and not port: 22)")
|> Stream.take(25)
|> Stream.map(&Map.get(&1, "ip"))
|> Enum.to_list()
["10.0.0.6", "10.2.0.1", ...]
Link to this function

view(client, ip, at_time \\ nil)

View Source
@spec view(CensysEx.API.t(), String.t(), DateTime.t() | nil) :: CensysEx.result()

Hits the Censys Hosts view API. Returning full information about an IP at a given time

Examples

CensysEx.Hosts.view("127.0.0.1")

# View "127.0.0.1" at a certain time
CensysEx.Hosts.view("127.0.0.1", ~U[2021-06-07 12:53:27.450073Z])