This is a basic command line interface that demonstrates using the golang GRPC API.
The API is reused between dishy and the wifi router, however both servers do not implement all the APIs. The basic-cli
demonstrates that the status
API works on dishy, but not on the router. Conversely, ping
works on the router, but not dishy.
$ go get github.com/starlink-community/starlink-cli/cmd/basic-cli
$ basic-cli -h
Usage of basic-cli:
-addr string
grpc addr (dishy is at 192.168.100.1:9200, wifi is at 192.168.1.1:9000 (default "192.168.100.1:9200")
-req string
status or ping (default "status")
$ basic-cli
dish_get_status: <
device_info: <
id: "ut01000000-00000000-00001234"
hardware_version: "rev1_pre_production"
software_version: "e68dfc80-fa1a-4fa4-9b21-d7ee2a918496.release"
country_code: "US"
>
device_state: <
uptime_s: 312929
>
state: CONNECTED
alerts: <
>
snr: 9
downlink_throughput_bps: 5737.808
uplink_throughput_bps: 1006.63293
pop_ping_latency_ms: 29.75
obstruction_stats: <
last_24h_obstructed_s: 4
valid_s: 61838.32
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
wedge_abs_fraction_obstructed: 0
>
>
$ basic-cli -req ping -addr 192.168.1.1:9000
get_ping: <
results: <
key: "103.10.124.1"
value: <
target: <
service: "Counter-Strike: GO"
location: "Singapore"
address: "103.10.124.1"
>
dropRate: 0.4
latencyMs: 217.1374
>
>
results: <
key: "103.10.125.1"
value: <
target: <
service: "Counter-Strike: GO"
location: "Sydney"
address: "103.10.125.1"
>
dropRate: 1
>
>
results: <
key: "104.160.131.3"
value: <
target: <
service: "League of Legends"
location: "Chicago"
address: "104.160.131.3"
>
dropRate: 1
>
>
results: <
key: "104.160.136.3"
value: <
target: <
service: "League of Legends"
location: "Los Angeles"
address: "104.160.136.3"
>
dropRate: 1
>
>
results: <
key: "104.160.141.3"
value: <
target: <
service: "League of Legends"
location: "Amsterdam"
address: "104.160.141.3"
>
dropRate: 1
>
>
results: <
key: "104.160.142.3"
value: <
target: <
service: "League of Legends"
location: "Frankfurt"
address: "104.160.142.3"
>
dropRate: 1
>
>
results: <
key: "104.160.156.1"
value: <
target: <
service: "League of Legends"
location: "Sydney"
address: "104.160.156.1"
>
dropRate: 1
>
>
results: <
key: "146.66.152.1"
value: <
target: <
service: "Counter-Strike: GO"
location: "Luxemborg"
address: "146.66.152.1"
>
dropRate: 1
>
>
results: <
key: "146.66.155.1"
value: <
target: <
service: "Counter-Strike: GO"
location: "Vienna"
address: "146.66.155.1"
>
dropRate: 0.4
latencyMs: 210.87733
>
>
results: <
key: "146.66.156.1"
value: <
target: <
service: "Counter-Strike: GO"
location: "Stockholm"
address: "146.66.156.1"
>
dropRate: 1
>
>
results: <
key: "185.25.183.1"
value: <
target: <
service: "Counter-Strike: GO"
location: "Dubai"
address: "185.25.183.1"
>
dropRate: 0.6
latencyMs: 335.9776
>
>
results: <
key: "192.168.100.1"
value: <
target: <
service: "Your Starlink"
address: "192.168.100.1"
>
latencyMs: 31.793804
>
>
results: <
key: "192.69.96.1"
value: <
target: <
service: "Counter-Strike: GO"
location: "Seattle"
address: "192.69.96.1"
>
latencyMs: 61.9395
>
>
results: <
key: "197.80.200.1"
value: <
target: <
service: "Counter-Strike: GO"
location: "Johannesburg"
address: "197.80.200.1"
>
dropRate: 0.6
latencyMs: 371.28906
>
>
results: <
key: "208.78.164.1"
value: <
target: <
service: "Counter-Strike: GO"
location: "Virginia"
address: "208.78.164.1"
>
dropRate: 0.2
latencyMs: 149.59204
>
>
results: <
key: "209.197.29.1"
value: <
target: <
service: "Counter-Strike: GO"
location: "S\303\243o Paulo"
address: "209.197.29.1"
>
dropRate: 1
>
>
results: <
key: "dynamodb.ap-east-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Hong Kong"
address: "dynamodb.ap-east-1.amazonaws.com"
>
dropRate: 0.2
latencyMs: 189.16917
>
>
results: <
key: "dynamodb.ap-northeast-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Tokyo"
address: "dynamodb.ap-northeast-1.amazonaws.com"
>
dropRate: 0.2
latencyMs: 169.83228
>
>
results: <
key: "dynamodb.ap-northeast-2.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Seoul"
address: "dynamodb.ap-northeast-2.amazonaws.com"
>
dropRate: 0.4
latencyMs: 229.78513
>
>
results: <
key: "dynamodb.ap-northeast-3.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Osaka"
address: "dynamodb.ap-northeast-3.amazonaws.com"
>
dropRate: 0.4
latencyMs: 171.29086
>
>
results: <
key: "dynamodb.ap-south-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Mumbai"
address: "dynamodb.ap-south-1.amazonaws.com"
>
dropRate: 0.6
latencyMs: 306.35556
>
>
results: <
key: "dynamodb.ap-southeast-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Singapore"
address: "dynamodb.ap-southeast-1.amazonaws.com"
>
dropRate: 0.4
latencyMs: 229.85423
>
>
results: <
key: "dynamodb.ap-southeast-2.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Sydney"
address: "dynamodb.ap-southeast-2.amazonaws.com"
>
dropRate: 0.6
latencyMs: 248.15205
>
>
results: <
key: "dynamodb.ca-central-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Montreal"
address: "dynamodb.ca-central-1.amazonaws.com"
>
dropRate: 0.2
latencyMs: 154.19655
>
>
results: <
key: "dynamodb.cn-north-1.amazonaws.com.cn"
value: <
target: <
service: "Fortnite"
location: "Beijing"
address: "dynamodb.cn-north-1.amazonaws.com.cn"
>
dropRate: 0.6
latencyMs: 332.88885
>
>
results: <
key: "dynamodb.cn-northwest-1.amazonaws.com.cn"
value: <
target: <
service: "Fortnite"
location: "Ningxia"
address: "dynamodb.cn-northwest-1.amazonaws.com.cn"
>
dropRate: 0.4
latencyMs: 307.33124
>
>
results: <
key: "dynamodb.eu-central-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Frankfurt"
address: "dynamodb.eu-central-1.amazonaws.com"
>
dropRate: 0.4
latencyMs: 223.75505
>
>
results: <
key: "dynamodb.eu-north-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Stockholm"
address: "dynamodb.eu-north-1.amazonaws.com"
>
dropRate: 0.4
latencyMs: 222.32887
>
>
results: <
key: "dynamodb.eu-west-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Ireland"
address: "dynamodb.eu-west-1.amazonaws.com"
>
dropRate: 0.4
latencyMs: 252.07127
>
>
results: <
key: "dynamodb.eu-west-2.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "London"
address: "dynamodb.eu-west-2.amazonaws.com"
>
dropRate: 0.2
latencyMs: 183.14899
>
>
results: <
key: "dynamodb.eu-west-3.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Paris"
address: "dynamodb.eu-west-3.amazonaws.com"
>
dropRate: 0.4
latencyMs: 243.78366
>
>
results: <
key: "dynamodb.me-south-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Bahrain"
address: "dynamodb.me-south-1.amazonaws.com"
>
dropRate: 0.4
latencyMs: 322.5198
>
>
results: <
key: "dynamodb.sa-east-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "S\303\243o Paulo"
address: "dynamodb.sa-east-1.amazonaws.com"
>
dropRate: 0.4
latencyMs: 262.59018
>
>
results: <
key: "dynamodb.us-east-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Virginia"
address: "dynamodb.us-east-1.amazonaws.com"
>
dropRate: 0.2
latencyMs: 146.55888
>
>
results: <
key: "dynamodb.us-east-2.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Ohio"
address: "dynamodb.us-east-2.amazonaws.com"
>
dropRate: 0.2
latencyMs: 120.64577
>
>
results: <
key: "dynamodb.us-west-1.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "California"
address: "dynamodb.us-west-1.amazonaws.com"
>
latencyMs: 84.610985
>
>
results: <
key: "dynamodb.us-west-2.amazonaws.com"
value: <
target: <
service: "Fortnite"
location: "Oregon"
address: "dynamodb.us-west-2.amazonaws.com"
>
latencyMs: 55.702183
>
>
results: <
key: "google.com"
value: <
target: <
service: "Google"
address: "google.com"
>
dropRate: 0.2
latencyMs: 51.706455
>
>
>