Descobrindo a localização da ISS via DNS
(shkspr.mobi)- É possível consultar a localização em tempo real da Estação Espacial Internacional (ISS) usando um registro DNS LOC
- O registro LOC armazena informações de latitude, longitude e altitude, oferecendo um recurso adequado para rastrear a posição de satélites
- Ao fazer uma consulta DNS para o domínio de exemplo (
where-is-the-iss.dedyn.io), ele retorna a posição mais recente da ISS - Os dados de localização são obtidos com a API da N2YO, e o registro LOC é atualizado automaticamente a cada 15 minutos
- Com um serviço de domínio com suporte a API, como o deSEC, é possível atualizar informações LOC com eficiência
Visão geral
- A partir do interesse pelas esoterica do DNS (recursos de nicho para entusiastas), é possível usar um registro DNS LOC para distribuir informações de localização física real pelo mundo inteiro
- Em geral, nomes de domínio estão ligados à localização física de servidores, e os registros LOC permitem registrar não só servidores, mas também a posição de dispositivos incomuns
O que é um registro DNS LOC?
- É um padrão experimental definido na RFC 1876 que permite registrar no DNS informações de latitude, longitude e altitude de um servidor
- Altitude mínima de -100.000 m (permitindo representar locais subterrâneos, como bunkers) e máxima de 42.849.672 m (permitindo representar até satélites em órbita geoestacionária)
- Oferece um recurso para transmitir via DNS informações de localização de vários equipamentos, incluindo satélites
Implementando um serviço de consulta da localização da Estação Espacial Internacional (ISS)
-
Foi criado o domínio
where-is-the-iss.dedyn.io, que funciona apenas com consulta DNS, sem site separado, ping ou interação convencional -
Em Linux e Mac, é possível consultar a posição da ISS com o comando abaixo
dig where-is-the-iss.dedyn.io LOC -
Exemplo de retorno: informações de latitude/longitude/altitude são fornecidas no formato LOC
where-is-the-iss.dedyn.io. 1066 IN LOC 47 24 53.500 N 66 12 12.070 W 430520m 10000m 10000m 10000m -
A informação é atualizada com a posição mais recente a cada 15 minutos (em modelo best-effort)
Obtenção e conversão dos dados de localização
-
Pelo site e pela API da N2YO, é possível rastrear vários objetos em órbita, e há uma API no plano gratuito
-
Com a chamada de API de exemplo, é possível obter a posição mais recente do satélite (latitude, longitude, altitude etc.) em formato JSON
https://api.n2yo.com/rest/v1/…=_____ -
A latitude/longitude retornada vem em formato decimal, e a altitude em Km → ao converter para um registro LOC, é necessário transformar em graus, minutos e segundos (DMS) e metros (m)
Automatizando a atualização do registro LOC
- Com a deSEC (organização sem fins lucrativos sediada em Berlim), é possível criar e atualizar registros LOC via API
- Exemplo de cadastro inicial do LOC
curl https://desec.io/api/v1/domains/where-is-the-iss.dedyn.io/rrsets/ ... --data '{"type": "LOC", "records": ["..."], "ttl": 900}' - Para atualizar, usa-se HTTP PATCH para enviar apenas as informações alteradas
- O TTL (900 segundos, 15 minutos) é configurado para que o código faça a atualização automática a cada 15 minutos
- Assim, é possível fornecer dados recentes com eficiência, respeitando o limite de uso da API
- Além disso, também é possível expandir a ideia com registros TXT para armazenar informações como o horário da atualização
Conclusão
- Esta tentativa é uma demonstração técnica das possibilidades de uso pouco convencionais do DNS
- No futuro, ela sugere a possibilidade de representar via registros DNS LOC a posição de objetos espaciais ainda mais variados, como o Mars Rover
- Como um caso criativo de uso do DNS, também oferece potencial de expansão para automação em infraestrutura/TI, gerenciamento de informações de localização e outras aplicações
1 comentários
Comentários do Hacker News
http://open-notify.org/
https://www.ckdhr.com/dns-loc/