क्या किसी इंस्टेंस का सार्वजनिक DNS पता प्राप्त करने का कोई तरीका है?


18

मेरे पास एक परियोजना है जिसमें मुझे हर बार कॉन्फ़िगरेशन फ़ाइलों को अपडेट करने की आवश्यकता होती है जो वर्तमान उदाहरण के सार्वजनिक डीएनएस पते के साथ ईसी 2 उदाहरण से बूट होती है। मैं इसके लिए पर्ल या सेड का उपयोग करूंगा, इसलिए यह वास्तव में सवाल नहीं है, लेकिन असली सवाल यह है: क्या कोई ऐसा तरीका है जिससे मैं उदाहरण के सार्वजनिक DNS पते को निर्धारित कर सकता हूं? क्या कोई EC2 एपीआई है जिसे मैं इसे निर्धारित करने के लिए उदाहरण से एक्सेस कर सकता हूं?

जवाबों:


27

वहाँ है। उदाहरण के अंदर से, आप चला सकते हैं:

curl http://169.254.169.254/latest/meta-data/public-ipv4

सार्वजनिक DNS होस्टनाम प्राप्त करने के लिए, आप उसे निम्न में बदल सकते हैं:

curl http://169.254.169.254/latest/meta-data/public-hostname

आप उदाहरण के लिए निजी आईपी प्राप्त कर सकते हैं:

curl http://169.254.169.254/latest/meta-data/local-ipv4

एक साइड नोट के रूप में, आप इसे http://ip4.me की तरह इंटरनेट पर किसी गैर-एडब्ल्यूएस साइट के खिलाफ दोबारा जांच सकते हैं

#!/bin/bash

pubip=$( curl http://ip4.me 2>/dev/null | sed -e 's#<[^>]*>##g' | grep '^[0-9]' )

echo $pubip

वह काम करेगा, आम तौर पर, किसी भी नेटेड सिस्टम के "सार्वजनिक आईपी" की जांच करने के लिए, या अपने सार्वजनिक प्रॉक्सी आईपी को खोजने के लिए, आदि।

और यहाँ अमेज़न के एपीआई से प्राप्त जानकारी के प्रकारों को पढ़ने के लिए एक अच्छा लिंक है: http://www.ducea.com/2009/06/01/howto-update-dns-hostnames-automatically-for-your- अमेज़न-EC2-उदाहरणों /


1
PUBLIC_HOSTNAME="$(curl http://169.254.169.254/latest/meta-data/public-hostname 2>/dev/null)":) आप, श्रीमान, धातु हैं।
Naftuli Kay

मदद करने के लिए खुश :)
टिम केनेडी

2

मैं सार्वजनिक आईपी और डीएनएस को पुनः प्राप्त करने के लिए इस समारोह को अपने .bashrc के अंदर परिभाषित करता हूं:

export PUBLIC_DNS=`curl http://169.254.169.254/latest/meta-data/public-hostname 2>/dev/null`
export PUBLIC_IP=`curl http://169.254.169.254/latest/meta-data/public-ipv4 2>/dev/null`

function get-pub() {
  if [ $# -ne 1 ]; then
    echo "Invalid number of arguments"
    return 1
  else
    case $1 in
      dns)
        echo $PUBLIC_DNS
        ;;
      ip)
        echo $PUBLIC_IP
        ;;
      *)
        echo $"Usage: get-pub {dns|ip}"
        return 2
    esac;
  fi
  return 0
}

1

आप AWS CLI को स्थापित और कॉन्फ़िगर कर सकते हैं ( aws configure) और निम्न कमांड का उपयोग कर सकते हैं:

aws ec2 describe-instances --instance-id i-0xyz --query 'Reservations[].Instances[].PublicDnsName' --output text
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.