python - पाइथन स्क्रिप्ट चल रहे विंडोज कंप्यूटर का नाम प्राप्त करना?





windows networking (6)


असल में, मेरे पास मेरे नेटवर्क पर कुछ विंडोज कंप्यूटर हैं जो एक पायथन स्क्रिप्ट चलाएंगे। इस स्क्रिप्ट को चलाने वाले कंप्यूटर के आधार पर कॉन्फ़िगरेशन विकल्पों का एक अलग सेट स्क्रिप्ट में उपयोग किया जाना चाहिए।

मैं उस कंप्यूटर नाम को पायथन लिपि में कैसे प्राप्त करूं?

मान लें कि स्क्रिप्ट डर्क-टॉवर नामक कंप्यूटर पर चल रही थी, मैं इस तरह कुछ लिखना चाहता हूं:

>>> python.library.get_computer_name()
'DARK-TOWER'

क्या कोई मानक या तृतीय पक्ष लाइब्रेरी है जिसका मैं उपयोग कर सकता हूं?




import socket
socket.gethostname()



एरिक कैर ने कहा कि आप इन तीन प्रकारों का उपयोग कर सकते हैं।

मैं उन्हें एक साथ उपयोग करना पसंद करता हूं:

def getpcname():
    n1 = platform.node()
    n2 = socket.gethostname()
    n3 = os.environ["COMPUTERNAME"]
    if n1 == n2 == n3:
        return n1
    elif n1 == n2:
        return n1
    elif n1 == n3:
        return n1
    elif n2 == n3:
        return n2
    else:
        raise Exception("Computernames are not equal to each other")

क्रॉस पेटफॉर्म अनुप्रयोगों को सुनिश्चित करने के लिए मुझे यह पसंद है;)




मुझे यकीन है कि gethostname खूबसूरती से काम करेगा।




चूंकि पाइथन स्क्रिप निश्चित रूप से विंडोज सिस्टम पर चल रहे हैं, तो आपको Win32 API GetComputerName या GetComputerNameEx उपयोग करना चाहिए

आप पूरी तरह से योग्य DNS नाम, या नेटबीओएसओ नाम, या विभिन्न प्रकार की विभिन्न चीज़ें प्राप्त कर सकते हैं।

import win32api
win32api.GetComputerName()

>>'MYNAME'

या:

import win32api
WIN32_ComputerNameDnsHostname = 1 
win32api.GetComputerNameEx(WIN32_ComputerNameDnsHostname)

>> u'MYNAME'



from sys import exit
exit()

एक पैरामीटर के रूप में आप एक निकास कोड पास कर सकते हैं, जिसे ओएस में वापस कर दिया जाएगा। डिफ़ॉल्ट 0 है।





python windows networking