2011-08-27 17 views
5

vb.net में आईपी पता कैसे प्राप्त करें। मैंने स्थानीय आईपी पता पाने के लिए कोड नीचे इस्तेमाल किया लेकिन यह दिखा रहा है कि डीएनएस घोषित नहीं किया गया है। किसी भी एक मुझे बता सकते हैं क्या है कि कोड में DNSवीबी का उपयोग कर स्थानीय आईपी पता कैसे प्राप्त करें?

वीबी कोड

Imports System.Environment 
Imports System.Net 

Public Class Tester 
Public Shared Sub Main 
Dim hostname As String = Dns.GetHostName() 
Dim ipaddress As String = CType(Dns.GetHostByName(hostname).AddressList.GetValue(0), IPAddr 
ess).ToString 
Console.WriteLine("Computer Name: " & hostname & " IP Address: " & ipaddress) 
End Sub 

End Class 
+0

आप जानते हैं कि किसी मशीन में कोई भी या कई आईपी पते नहीं हो सकते हैं? –

+2

अब आपने सवाल पूरी तरह बदल दिया है - पहले आप 'डीएनएस' के बारे में पूछ रहे हैं, अब आप कनेक्ट क्लाइंट के आईयूपी के बारे में पूछ रहे हैं ... अगर आपके पास दूसरा प्रश्न है तो आपको दूसरा प्रश्न खोलना होगा और पहले को नहीं बदलना चाहिए !!! मैंने आपके प्रश्न को मूल पर वापस ले लिया है ... अगर कोई उत्तर मदद की है तो कृपया स्वीकार करें/चिह्नित करें और "क्लाइंट आईपी" के बारे में दूसरा प्रश्न खोलें! – Yahia

+2

स्पष्ट रूप से कोई ऐसा व्यक्ति जो विनम्र, स्वीकार्य, नागरिक, मानव, सामान्य, सभ्य तरीके से प्रश्न पूछने के बारे में नहीं जानता – Martin

उत्तर

1

उपयोग करें:

HttpContext.Current.Request.UserHostAddres 

उम्मीद है कि यह मदद करता है।

0

ips = Dns.GetHostAddresses (होस्टनाम)

यहाँ एक नमूना कोड MSDN

0

आप नीचे दिए गए कोड का उपयोग कर प्रणाली का स्थानीय IP पता प्राप्त कर सकते हैं:

Dim host As String = System.Net.Dns.GetHostName() 
Dim LocalHostaddress As String = System.Net.Dns.GetHostByName(host).AddressList(1).ToString() 
+0

वास्तव में यह एक बुरा और सामान्य जवाब है। क्या होता है जब हम चाहते हैं कि आईपी 'पता सूची()' के सूचकांक 0 या 2 पर है? – ElektroStudios

+0

यह एक बेहतर समाधान होगा, लेकिन फिर भी 100% कुशल नहीं होगा: वापसी (आईपी से Net.IPAddress System.Net में।Dns.GetHostEntry (System.Net.Dns.GetHostName()) पतासूची() जहां आईपी नहीं है। ToString.Contains (":"))। FirstOrDefault.ToString – ElektroStudios

+0

क्या होगा यदि लूपबैक एडाप्टर या ब्लूटूथ लैन एडाप्टर स्थापित किया गया हो? आप मान रहे हैं कि नेटवर्क एडाप्टर 1 जांच किए बिना सही है। समस्या यह है कि - सूचकांक सरणी 0 से शुरू होती है, एक नहीं। सरणी में एडाप्टर 1 भी नहीं हो सकता है। सबसे अच्छा तरीका है एडेप्टर के माध्यम से पुनरावृत्ति करना और [तय करें] आईपीवी 4, आईपीवी 6 या बीटी पते के परीक्षण के लिए सत्यापन के सरल माध्यमों से कौन सा सही है। – Matth3w

3

जब से मैं महसूस पाने के कि, प्रश्न (शीर्षक में) अभी तक पूरी तरह से उत्तर नहीं दिया गया है ...

Dim hostName = System.Net.Dns.GetHostName() 
For Each hostAdr In System.Net.Dns.GetHostEntry(hostName).AddressList() 

    ' If you just want to write every IP 
    Console.WriteLine("Name: " & hostName & " IP Address: " & hostAdr.ToString() 

    ' If you want to look if the device is member of a specific network 
    If hostAdr.ToString().StartsWith("192.168.1.") Then DoSomething() : Exit For 

    ' I think you get the idea ^^ 
    ' ... 
Next 

... स्पष्ट रूप से यह बिल्कुल ठीक नहीं है कि ओपी ने क्या पूछा, लेकिन सिर्फ शीर्षक और Google लिंक से, यह जवाब देना चाहिए कि यहां आने वाले लोग क्या ढूंढ रहे हैं।

बीटीडब्ल्यू GetHostByName() को बहिष्कृत किया जाता है, GetHostEntry() जैसे यह चेतावनी फेंकने के बिना, वैसे ही काम करता है।

0
Dim ipaddress As String = 
    Dns.GetHostEntry(Dns.GetHostName).AddressList(0).ToString 

यह सबसे अधिक संभावना IPv6 पता दे देंगे

और

Dim ipaddress As String = 
    Dns.GetHostEntry(Dns.GetHostName).AddressList.FirstOrDefault(() => { }, 
    (ip.AddressFamily = AddressFamily.InterNetwork)).ToString 

यह IPv4 पता

दे देंगे मेरे वीबी इसलिए यहाँ जंग लगी है एक सी # कोड है कि मेरे लिए काम करता है।

using System.Linq; 

using System.Net.Sockets; 

string IPaddress = 
    Dns.GetHostEntry(Dns.GetHostName()).AddressList[0].ToString(); //For Ipv6 

string IPaddress = 
    Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(ip => 
    ip.AddressFamily == AddressFamily.InterNetwork).ToString(); //For Ipv4 

मुझे उम्मीद है कि इससे मदद मिलती है।

1
Dim hostName = System.Net.Dns.GetHostName() 
    For Each hostAdr In System.Net.Dns.GetHostEntry(hostName).AddressList() 

     ' If you just want to write every IP 
     'Console.WriteLine("Name: " & hostName & " IP Address: " & hostAdr.ToString()) 
     Me.RichTextBox1.Text = hostAdr.ToString 

     'If you want to look if the device is member of a specific network 

     ' ... 
    Next 
संबंधित मुद्दे