diff --git a/README.md b/README.md
index 0d13c20..93966fd 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
-
+
@@ -24,10 +24,9 @@
-## An RTSP stream access tool with a Go library
+## RTSP stream access tool
Cameradar scans RTSP endpoints on authorized targets, and uses dictionary attacks to bruteforce their credentials and routes.
-Use the CLI for end-to-end scanning or import the library in Go code.
### What Cameradar does
@@ -56,6 +55,10 @@ Use the CLI for end-to-end scanning or import the library in Go code.
- [Examples](#examples)
- [License](#license)
+---
+
+
+
## Quick start with Docker
Install [Docker](https://docs.docker.com/engine/installation/) and run:
diff --git a/images/example.gif b/images/example.gif
new file mode 100644
index 0000000..7c14f71
Binary files /dev/null and b/images/example.gif differ
diff --git a/internal/scan/skip/skip_test.go b/internal/scan/skip/skip_test.go
index 36b8994..6d8cf44 100644
--- a/internal/scan/skip/skip_test.go
+++ b/internal/scan/skip/skip_test.go
@@ -13,7 +13,6 @@ import (
func TestNew_ExpandsTargetsAndPorts(t *testing.T) {
targets := []string{
"192.0.2.0/30",
- "localhost",
"192.0.2.15",
"192.0.2.10-11",
}
@@ -25,7 +24,6 @@ func TestNew_ExpandsTargetsAndPorts(t *testing.T) {
require.NoError(t, err)
addrs := []netip.Addr{
- netip.MustParseAddr("127.0.0.1"),
netip.MustParseAddr("192.0.2.0"),
netip.MustParseAddr("192.0.2.1"),
netip.MustParseAddr("192.0.2.2"),
@@ -92,7 +90,12 @@ func TestNew_ResolvesHostnames(t *testing.T) {
streams, err := scanner.Scan(t.Context())
require.NoError(t, err)
require.NotEmpty(t, streams)
- assert.Equal(t, netip.MustParseAddr("127.0.0.1"), streams[0].Address)
+ addr := streams[0].Address
+ assert.True(t,
+ addr == netip.MustParseAddr("127.0.0.1") || addr == netip.MustParseAddr("::1"),
+ "expected localhost to resolve to 127.0.0.1 or ::1, got %s",
+ addr.String(),
+ )
}
func TestNew_ReturnsErrorOnHostnameLookupFailure(t *testing.T) {