मुझे .NET में कंप्यूटर का नाम कैसे मिला


285

मुझे .NET c # में कंप्यूटर का नाम कैसे आता है

c#  .net 

डुप्लीकेट प्रश्न लिंक
मलाकी

1
@ मालची, यह सवाल विंडोज सेवाओं के बारे में है।
सैम

2
@Sam एक विंडोज़ सेवा केवल एक विंडोज़ अनुप्रयोग है जो पृष्ठभूमि में चलती है, इसलिए वास्तव में यह एक ही बात है।
मलाची

@ मालाची, हाँ, मुझे पता है कि आपका क्या मतलब है। हालाँकि, मुझे लगता है कि इस प्रश्न के उत्तर में ASP.NET- विशिष्ट और Winforms- विशिष्ट तरीके के संदर्भ उस प्रश्न में लागू नहीं हो सकते हैं।
सैम

1
@ मलाईची, मुझे लगता है कि आपने ASP.NET के बारे में क्या गलत समझा है। मैं एक ASP.NET अनुप्रयोग का उल्लेख नहीं कर रहा था जो उसके ग्राहकों के कंप्यूटर नाम प्राप्त कर रहा था, हालाँकि ऐसा करना (DNS नाम के लिए) संभवतः आसान है क्योंकि आवेदन को ग्राहकों के आईपी पते मिलेंगे। मैं ASP.NET अनुप्रयोगों का उल्लेख कर रहा था जो उनके मेजबान कंप्यूटर के नाम प्राप्त कर रहे थे। एक उदाहरण के लिए यहां उच्चतम-रेटेड उत्तर देखें।
सैम

जवाबों:


400

देखें सी # /। नेट में स्थानीय मशीन के FQDN को खोजने के लिए कैसे? यदि अंतिम आपको FQDN नहीं देता है और आपको इसकी आवश्यकता है।

SystemInformation.ComputerName, Environment.MachineName और Net.Dns.GetLostName के बीच अंतर के बारे में विवरण देखें


3
@tvanfosson: क्या अंतर है? मेरा मतलब है, मुझे कब कौन सा उपयोग करना चाहिए? क्या इसके कोई सुरक्षा निहितार्थ हैं?
पीके

26
मैं कंसोल या विनफॉर्म एप्लिकेशन से पहला, एक वेब ऐप से दूसरा, और तीसरा अगर मुझे FQDN प्राप्त करने की आवश्यकता है, का उपयोग करूंगा। आवश्यक अनुमतियों की जानकारी के लिए संदर्भित दस्तावेज़ देखें।
tvanfosson

1
@tvanfosson इन तीनों से मुझे सर्वर नाम मिलता है न कि क्लाइंट मशीन जो पेज एक्सेस कर रही है। यह कैसे काम करता है? या मैं कुछ गलत कर रहा हूँ। मैं क्लाइंट मशीन प्राप्त करना चाहूंगा, न कि सर्वर। मैं asp.NET 4.0 के साथ वेब फॉर्म का उपयोग कर रहा हूं
रयान एस

2
मैं सिर्फ यह परीक्षण किया और पाया कि Dns.GetHostName() नहीं था पूरी तरह से योग्य नाम दें।
सैम

5
ध्यान दें कि System.Enviornment.MachineName केवल आपको NetBIOS नाम देने वाला है, इसलिए यदि होस्ट नाम 15 वर्णों से अधिक लंबा है, तो आपको पूर्ण नाम की आवश्यकता होने पर समस्याएँ आएंगी। मैं दूसरों के लिए नहीं बोल सकता।
रैंडमइन्सानो

78

System.Environment.MachineName

या, यदि आप Winforms का उपयोग कर रहे हैं, तो आप उपयोग कर सकते हैं System.Windows.Forms.SystemInformation.ComputerName, जो बिल्कुल वैसा ही मूल्य देता है System.Environment.MachineName



23

मशीन का नाम या कंप्यूटर का नाम पाने के लिए कुछ तरीके नीचे दिए गए हैं

विधि 1: -

string MachineName1 = Environment.MachineName;

विधि 2: -

string MachineName2 = System.Net.Dns.GetHostName();

विधि 3: -

string MachineName3 = Request.ServerVariables["REMOTE_HOST"].ToString();

विधि 4: -

string MachineName4 = System.Environment.GetEnvironmentVariable("COMPUTERNAME");

अधिक जानकारी के लिए मेरा ब्लॉग देखें




15

वैसे एक और तरीका है: विंडोज मैनेजमेंट इंस्ट्रूमेंटेशन

using System.Management;

try
        {
            ManagementObjectSearcher searcher =
                new ManagementObjectSearcher("root\\CIMV2",
                "SELECT Name FROM Win32_ComputerSystem");

            foreach (ManagementObject queryObj in searcher.Get())
            {
                Console.WriteLine("-----------------------------------");
                Console.WriteLine("Win32_ComputerSystem instance");
                Console.WriteLine("-----------------------------------");
                Console.WriteLine("Name: {0}", queryObj["Name"]);
            }
        }
        catch (ManagementException e)
        {
            // exception handling
        }

MSDN

WMI

WMI कोड निर्माता

पूछे जाने वाले प्रश्न


4

इसे इस्तेमाल करे:

string[] computer_name = System.Net.Dns.GetHostEntry(System.Web.HttpContext.Current.Request.ServerVariables["remote_addr"]).HostName.Split(new Char[] { '.' });
return computer_name[0].ToString();

1
डीएनएस का नाम और कंप्यूटर का नाम अलग हो सकता है। वह संगणना के लिए पूछ रहा है!
मार्श-विगले

4

मैंने <p>अपने वेब प्रोजेक्ट के लिए उपयोगकर्ता के कंप्यूटर के नाम के लिए एक ब्रैकेट का .nerHtml निम्न कार्य कर रहा है:

HTML:

    <div class="col-md-4">
       <h2>Your Computer Name Is</h2>
       <p id="pcname" runat="server"></p>
       <p>
           <a class="btn btn-default" href="#">Learn more &raquo;</a>
       </p>
    </div>

सी#:

using System;
using System.Web.UI;

namespace GetPCName {
   public partial class _Default : Page {
    protected void Page_Load(object sender, EventArgs e) {            
        pcname.InnerHtml = Environment.MachineName;
    }
   }
}

1

2 और सहायक विधियाँ: System.Environment.GetEnvironmentVariable ("ComputerName")

अगर वे Citrix XenApp या टर्मिनल सेवा (उर्फ RDS, RDP, रिमोट डेस्कटॉप) के माध्यम से जुड़े हुए हैं, तो उपयोगकर्ता के पीसी का नाम पाने के लिए System.Environment.GetEnvironmentVariable ("ClientName")।


1

इसको आजमाओ।

public static string GetFQDN()
{
    string domainName = NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName;
    string hostName = Dns.GetHostName();
    string fqdn;
    if (!hostName.Contains(domainName))
        fqdn = hostName + "." +domainName;
    else
        fqdn = hostName;

    return fqdn;
}

लेकिन क्यों नहीं System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties () का उपयोग करें।
osexpert
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.