डोमेन नाम के साथ होस्टनाम कैसे प्राप्त करें?


18

यूनिक्स (सोलारिस) में कोई कमांड है जो होस्टनाम और डोमेन नाम को एक साथ लौटाता है?

उदाहरण के लिए:

hostname -> servername
domainname -> us.xyz.com

मुझे जरूरत है : servername.us.xyz.com


2
करता है printf "%s" "$(hostname) $(domainname)"काम नहीं?
जस्नोवरीयन

"hostname -f" का उपयोग करने की कोशिश करें जो कि मुझे काफी आशा होगी
अभिषेक कुमार श्रीवास्तव

जवाबों:


14

यदि आपका डोमेन resolv.conf में सही तरीके से सेट है, तो यह काम करेगा। यदि आपका NIS डोमेननाम आपके DNS डोमेन के समान है, तो आप उन डोमेन नाम का उपयोग कर सकते हैं, जिनका दूसरों ने उल्लेख किया है।

echo `uname -n`.`awk '/^domain/ {print $2}' /etc/resolv.conf`

13

आदेश

hostname --fqdn (or -f)

हो सकता है कि आप मेरे सिस्टम पर (none)तब से चलें या न चाहें, जब मैं चलता हूंdomainname


8
hostname(1)Solaris 10 (sun4v पर) और मेरे द्वारा उपयोग किए गए प्रत्येक पुराने संस्करण के लिए मेनपेज के अनुसार , --fqdnउपलब्ध नहीं है। यह सिर्फ hostname सेट करने की कोशिश करता है --fqdn। यदि आप इसे सुरक्षा के लिए एक गैर-सुपरयूज़र के रूप में चलाते हैं, तो यह कहता है कि 'नाम: सेटिंग नाम में त्रुटि: स्वामी नहीं'। यह स्पष्ट रूप से स्टॉक सोलारिस है hostname। पोस्टर में यह संकेत नहीं है कि उनके पास GNU टूलसेट स्थापित है या नहीं।
एलेक्सिओस

5

यह मुझे सालों से परेशान कर रहा है। मैं सिर्फ यह कहकर इसके आसपास काम करता हूं

$(hostname).$(domainname)

आप एक शेल फ़ंक्शन या अन्य नाम परिभाषित कर सकते हैं:

fqdn () {
    echo $(hostname).$(domainname)
}

4
domainnnameयदि आप NIS चला रहे हैं तो वास्तव में आपके NIS डोमेन की रिपोर्ट करता है। यह आवश्यक रूप से आपके DNS डोमेन नाम के समान नहीं है।
मैगलन

नहीं, यह नहीं है। लेकिन जब से मैं NIS से बचने / प्रबंधित करने में कामयाब रहा, क्योंकि यह येलो पेज था, मुझे यह कभी पता नहीं था। :) तो क्या NIS एक अलग है डोमेन नाम पाने के लिए एक विश्वसनीय तरीका है?
एलेक्सियो

आपको धन्य महसूस करना चाहिए कि आपने एनआईएस से परहेज किया है। यह खीझ दिलाने वाला है। और यहां तक ​​कि मोज़िला थंडरबर्ड टीम ने इसे एक बार खराब कर दिया, क्योंकि वे डिफ़ॉल्ट उत्तर के लिए 2.0 में 'डोमेननाम' आउटपुट पर निर्भर थे। वास्तविक डोमेन नाम के लिए, मैं इस्तेमाल करता हूंhostname --fqdn | cut -d. -f2-4
मैगेलन

1
यह लिनक्स पर अच्छा काम करता है। सोलारिस पर कम से कम 10 तक, होस्टनाम को '--fqdn' पर hostname --fqdn सेट करता है, जो संभवतः एक बुरा विचार है (इसलिए सुनिश्चित करें कि आप इसे आज़माते हैं तो आप जड़ नहीं हैं)। :) --fqdnसोलारिस 11 पर समर्थित है?
एलेक्सिओस

1
ओए! अनजाने में होस्टनाम सेट करना एक दर्द होगा, और ओपी ने सोलारिस कहा। धन्यवाद!
मैगलन

4

check-hostname | awk '{प्रिंट $ NF}'


2
कृपया गैर-विशेषज्ञों के लिए थोड़ा स्पष्ट करें।
वॉनब्रांड

Synopsis / usr / sbin / check-hostname विवरण चेक-होस्टनाम स्क्रिप्ट सेंडमेल (1M) के लिए एक माइग्रेशन सहायता है। यह स्क्रिप्ट स्थानीय होस्ट के पूरी तरह से योग्य होस्ट नाम (FQHN) को Sendmail (1M) के समान तरीके से निर्धारित करने की कोशिश करती है। यदि चेक-होस्टनाम स्थानीय होस्ट के FQHN को निर्धारित करने में सक्षम है, तो यह सफलता की रिपोर्ट करता है। अन्यथा, चेक-होस्टनाम रिपोर्ट करता है कि सिस्टम को फिर से कैसे कॉन्फ़िगर किया जाए ताकि FQHN को ठीक से निर्धारित किया जा सके।
इलेगुंबी

/ usr / sbin / check-hostname FQDN को रिपोर्ट करेगा, यदि इसे परिभाषित किया गया है, तो सोलारिस सिस्टम पर। प्रिंट $ एनएफ का उपयोग करने के लिए आउटपुट को जगाने और उपयोग करने के लिए, चेक-होस्टनाम से आउटपुट के अंतिम क्षेत्र की रिपोर्ट करता है, जो कि एफक्यूडीएन है। यह सबसे प्रत्यक्ष तरीका है जो मुझे कमांड लाइन से यह जानकारी प्राप्त करने के लिए पता है, यह मानते हुए कि आपके पास पूरी तरह से योग्य डोमेन नाम है। यदि नहीं, तो यह काम नहीं करेगा, लेकिन मुझे यह दिखाने की आवश्यकता महसूस नहीं हुई, जैसा कि उस मामले में होस्टनाम आपके पास है। यदि आप सोलारिस का उपयोग नहीं कर रहे हैं, तो यह भी काम नहीं करेगा, लेकिन क्वेरी सोलारिस के लिए निर्देशित की गई थी।
इलगुम्बी

गंभीरता से, मुझे समझ में नहीं आता कि यह सवाल का जवाब कैसे नहीं देता, जो था: "यूनिक्स (सोलारिस) में कोई कमांड है जो होस्टनाम और डोमेन नाम को एक साथ लौटाता है?" उत्तर "हां" है, और यह कमांड है: चेक-होस्टनाम | awk '{print $ NF}'
ealgumby

3
असली जवाब आपकी टिप्पणियों में है। इस वेबसाइट के बारे में इस तरह का जवाब नहीं है, (या आपके मामले में, कोई भी) स्पष्टीकरण के साथ एक-लाइन कमांड देना।
रहमू

2

मुझे पता है कि यह एक पुराना धागा है, लेकिन मुझे स्क्रिप्ट में होस्टनाम और डोमेन नाम को अलग से खींचने की आवश्यकता थी।

चेक-होस्टनाम का उपयोग करने के लिए ealgumby की प्रतिक्रिया कुछ ऐसी थी जिसे मैंने पहले कभी नहीं देखा था इसलिए मैंने इसे अपनी आवश्यकताओं के लिए बड़ी सफलता के लिए प्रयास किया। मैं इसे सहायक के रूप में चिह्नित करूंगा, लेकिन जाहिर तौर पर मेरे पास ऐसा करने के लिए प्रतिनिधि नहीं है।

मैंने चेक-होस्टनाम से आउटपुट के माध्यम से डोमेन को लूपिंग के रूप में सेट किया।

domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}

1

मैंने थोड़ा सा काम किया है hostnameऔर host:

$ host $(hostname -i) | awk '{print $NF }'

(मैं Centos का उपयोग कर रहा हूँ, लेकिन यह कहीं और काम करना चाहिए)

बिना ट्रेलिंग डॉट के डोमेन प्राप्त करना:

$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'

मेरे ubuntu पर, hostname -iहोस्टनाम के अनुरूप आईपी एड्रेस प्रिंट करें।
आर्चर

हां यह सही है, इसलिए मैं इस आईपी को host कमांड करता हूं । यह आपको कुछ इस तरह मिलेगा: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname. awk के साथ मुझे अंतिम कॉलम मिलेगाhostname.domainname
user1314742

मैं देख रहा हूं, दुर्भाग्य से host $(hostname -i)मुझे 8 होस्टनाम की एक सूची का उपयोग करके , सभी एक ही आईपी के साथ, और मेरे मेजबान के लिए कोई होस्टनाम नहीं है
आर्कमेयर

क्या आप सुनिश्चित हैं कि आपके पास hostकमांड के लिए कोई उपनाम नहीं है ? ऐसा लगता है कि आपके कमांड hostका उपनाम हैhost -a
user1314742

0

सोलारिस पर यह मेरे लिए अच्छी तरह से काम करता है: बैकटिक के लिए खेद है, यह क्यूवर्टी कीबोर्ड पर नंबर 1 के बगल में उलट बोली है या आप केएसएच में $ (कमांड) का उपयोग कर सकते हैं

getent hosts (backtick) /usr/bin/hostname (backtick)

या

getent hosts $(/usr/bin/hostname)

उदाहरण:

root@melauto:[/]# getent hosts $(/usr/bin/hostname)

10.4.19.241     melauto.sro.vic.gov.au melauto loghost
root@melauto:[/]# 

जैसा कि /etc/nsswitch.conf में निर्दिष्ट है, वर्तमान नाम खोज तंत्र पर सवाल उठता है और खोज से मेल खाने वाली जानकारी लौटाता है, यहाँ यह जानकारी मिलती है जैसा कि पाया गया है /etc/hosts। यदि आप किसी अन्य होस्ट के लिए होस्ट जानकारी की तलाश करते हैं जो अंदर नहीं है /etc/hosts, तो यह DNS में दिखेगा जो कि परिभाषित है/etc/nsswitch.conf


-2

यूनिक्स बैश स्क्रिप्ट में, सन सोलारिस 10 में, मैंने अभी-अभी अपना होस्ट नाम प्रदर्शित किया है:

इको "मेरा होस्टनाम $ है (होस्टनाम)"


"डोमेन नाम के साथ"
माइकल मर्जेक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.