ตรวจสอบตำแหน่งของ ISS ผ่าน DNS
(shkspr.mobi)- สามารถใช้ DNS LOC record เพื่อค้นหาข้อมูลตำแหน่งแบบเรียลไทม์ของ สถานีอวกาศนานาชาติ (ISS) ได้
- LOC record เก็บข้อมูลละติจูด ลองจิจูด และความสูง จึงเหมาะสำหรับการติดตามตำแหน่งของดาวเทียม
- เมื่อส่ง DNS query ไปยังโดเมนตัวอย่าง (where-is-the-iss.dedyn.io) ระบบจะส่งกลับ ตำแหน่งล่าสุดของ ISS
- ใช้ N2YO API เพื่อดึงข้อมูลตำแหน่ง และมีการอัปเดต LOC record อัตโนมัติทุก 15 นาที
- สามารถอัปเดตข้อมูล LOC ได้อย่างมีประสิทธิภาพผ่าน บริการโดเมนที่รองรับ API เช่น deSEC
ภาพรวม
- จากความสนใจในลูกเล่นเฉพาะทางของ DNS จึงพบว่าสามารถใช้ DNS LOC record เพื่อเผยแพร่ข้อมูลตำแหน่งทางกายภาพจริงไปยังทั่วโลกได้
- โดยทั่วไป ชื่อโดเมน มักเชื่อมโยงกับตำแหน่งทางกายภาพของเซิร์ฟเวอร์ และผ่าน LOC record ก็สามารถบันทึกตำแหน่งได้ไม่เฉพาะเซิร์ฟเวอร์ แต่รวมถึงอุปกรณ์ที่แปลกออกไปด้วย
DNS LOC record คืออะไร?
- เป็น มาตรฐานเชิงทดลอง ที่กำหนดไว้ใน RFC 1876 ซึ่งทำให้สามารถบันทึกข้อมูล ละติจูด ลองจิจูด และความสูง ของเซิร์ฟเวอร์ไว้ใน DNS ได้
- รองรับความสูงต่ำสุด -100,000m (ใช้แสดงตำแหน่งใต้ดิน เช่น บังเกอร์) และสูงสุด 42,849,672m (ใช้แสดงได้ถึงดาวเทียมวงโคจรค้างฟ้า เป็นต้น)
- เป็นความสามารถที่ทำให้ส่งต่อข้อมูลตำแหน่งของอุปกรณ์หลากหลายชนิดรวมถึงดาวเทียมผ่าน DNS ได้
การสร้างบริการค้นหาตำแหน่งของสถานีอวกาศนานาชาติ (ISS)
-
สร้างโดเมน
where-is-the-iss.dedyn.ioโดยไม่มีเว็บไซต์แยก ไม่มี ping และไม่มีการโต้ตอบทั่วไปใด ๆ แต่ ทำงานผ่าน DNS query เท่านั้น -
บน Linux และ Mac สามารถใช้คำสั่งด้านล่างเพื่อสอบถามข้อมูลตำแหน่งของ ISS ได้
dig where-is-the-iss.dedyn.io LOC -
ตัวอย่างผลลัพธ์: จะแสดงข้อมูลละติจูด/ลองจิจูด/ความสูงในรูปแบบ LOC
where-is-the-iss.dedyn.io. 1066 IN LOC 47 24 53.500 N 66 12 12.070 W 430520m 10000m 10000m 10000m -
มีการ อัปเดตเป็นข้อมูลตำแหน่งล่าสุดทุก 15 นาที (แบบ best-effort)
การดึงและแปลงข้อมูลตำแหน่ง
-
ผ่านเว็บไซต์และ API ของ N2YO สามารถติดตามวัตถุต่าง ๆ ในวงโคจรได้ และมี API ระดับฟรีให้ใช้งาน
-
สามารถใช้ตัวอย่างการเรียก API เพื่อดึงตำแหน่งล่าสุดของดาวเทียม (ละติจูด ลองจิจูด ความสูง ฯลฯ) ในรูปแบบ JSON ได้
https://api.n2yo.com/rest/v1/…=_____ -
ละติจูด/ลองจิจูดที่ส่งกลับมาอยู่ใน รูปแบบทศนิยม ส่วนความสูงเป็นหน่วยกิโลเมตร จึงต้องแปลงเป็นหน่วยองศา-ลิปดา-พิลิปดา (DMS) และเมตร (m) เมื่อนำไปใช้กับ LOC record
การทำให้การอัปเดต LOC record เป็นอัตโนมัติ
- deSEC (องค์กรไม่แสวงกำไรในเบอร์ลิน) รองรับการสร้างและอัปเดต LOC record ครั้งแรกผ่าน API
- ตัวอย่างการลงทะเบียน LOC ครั้งแรก
curl https://desec.io/api/v1/domains/where-is-the-iss.dedyn.io/rrsets/ ... --data '{"type": "LOC", "records": ["..."], "ttl": 900}' - การอัปเดตใช้ HTTP PATCH เพื่อส่งเฉพาะข้อมูลที่เปลี่ยนแปลง
- ตั้งค่า TTL (900 วินาที, 15 นาที) ทำให้โค้ดสามารถอัปเดตอัตโนมัติทุก 15 นาทีได้
- ช่วยให้ให้บริการข้อมูลล่าสุดได้อย่างมีประสิทธิภาพพร้อมปฏิบัติตาม ข้อจำกัดการใช้งาน API
- นอกจากนี้ยังสามารถขยายเพิ่มเติมได้ เช่น ใช้ TXT record เพื่อบันทึกเวลาอัปเดต
บทสรุป
- ความพยายามครั้งนี้เป็นการสาธิตเชิงเทคนิคที่แสดงให้เห็นถึง ความเป็นไปได้ในการใช้งาน DNS ในรูปแบบที่แปลกใหม่
- ในอนาคตยังชี้ให้เห็นความเป็นไปได้ที่จะใช้ DNS LOC record เพื่อแสดงตำแหน่งของวัตถุอวกาศอื่น ๆ ที่หลากหลายยิ่งขึ้น เช่น Mars Rover
- เป็นตัวอย่างการประยุกต์ใช้ DNS อย่างสร้างสรรค์ที่สามารถต่อยอดไปสู่การทำงานอัตโนมัติในงานโครงสร้างพื้นฐาน/IT การจัดการข้อมูลตำแหน่ง และด้านอื่น ๆ ได้
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
http://open-notify.org/
https://www.ckdhr.com/dns-loc/