بنقرة واحدة
check-domains
Check whether domains are blocked by Indonesian ISP DNS filters (Nawala/Komdigi)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Check whether domains are blocked by Indonesian ISP DNS filters (Nawala/Komdigi)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | check_domains |
| description | Check whether domains are blocked by Indonesian ISP DNS filters (Nawala/Komdigi) |
Check one or more domains against Indonesian ISP DNS filters and return structured results indicating whether each domain is blocked, not blocked, or encountered an error.
Before using this skill, verify that the nawala CLI is installed:
nawala --version
If the command is not found, install it:
go install github.com/H0llyW00dzZ/nawala-checker/cmd/nawala@latest
Run the nawala CLI with --format json for machine-readable output.
nawala check --format json google.com reddit.com github.com
The JSON response uses the nawala envelope format:
{
"nawala": {
"version": "0.7.1",
"result": [
{"domain": "google.com", "blocked": false, "server": "180.131.144.144"},
{"domain": "reddit.com", "blocked": true, "server": "180.131.144.144"},
{"domain": "github.com", "blocked": false, "server": "180.131.144.144"}
]
}
}
Each result object contains:
| Field | Type | Description |
|---|---|---|
domain | string | The domain that was checked |
blocked | bool | true if blocked, omitted on error |
server | string | DNS server IP used for the check |
error | string | Error message (only present on failure) |
nawala check --format json --file domains.txt
The file should contain one domain per line. Lines starting with # are comments.
nawala check --format json --config config.json google.com
0 — all checks succeeded1 — partial or complete failure (check individual result errors)nawala.result arrayerror first, then read blocked"blocked": true means the domain is filtered by the ISP[!WARNING] This method is a programmatic interface and requires an advanced AI agent setup with a properly configured Go development environment. Your AI framework must be able to compile and run Go code natively. If unsure, use Method 1 (CLI) instead.
Import the SDK directly for native performance and streaming support.
go get github.com/H0llyW00dzZ/nawala-checker
package main
import (
"context"
"fmt"
"time"
"github.com/H0llyW00dzZ/nawala-checker/src/nawala"
)
func main() {
checker := nawala.New()
defer checker.Close()
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
results, err := checker.Check(ctx, "google.com", "reddit.com")
if err != nil {
// Handle error
return
}
for _, r := range results {
if r.Error != nil {
fmt.Printf("%s: error: %v\n", r.Domain, r.Error)
continue
}
fmt.Printf("%s: blocked=%v (server: %s)\n", r.Domain, r.Blocked, r.Server)
}
}
result, err := checker.CheckOne(ctx, "example.com")
in := make(chan string)
out := make(chan nawala.Result, checker.Concurrency())
go func() {
defer close(in)
for _, d := range domains {
in <- d
}
}()
go func() {
_ = checker.CheckStream(ctx, nawala.Stream{In: in, Out: out})
close(out)
}()
for r := range out {
// Process each result as it arrives
}
checker := nawala.New(
nawala.WithTimeout(10 * time.Second),
nawala.WithMaxRetries(3),
nawala.WithConcurrency(50),
nawala.WithServers([]nawala.DNSServer{
{Address: "8.8.8.8", Keyword: "blocked", QueryType: "A"},
}),
)
type Result struct {
Domain string // Domain that was checked
Blocked bool // Whether blocked (only valid when Error is nil)
Server string // DNS server IP used
Error error // Non-nil if check failed
}
Always check Error before reading Blocked:
if errors.Is(r.Error, nawala.ErrInvalidDomain) {
// Domain name is invalid
} else if errors.Is(r.Error, nawala.ErrNXDOMAIN) {
// Domain does not exist
} else if errors.Is(r.Error, nawala.ErrDNSTimeout) {
// DNS query timed out
} else if errors.Is(r.Error, nawala.ErrAllDNSFailed) {
// All DNS servers failed
}