C# में System.Net.Dns क्लास का उपयोग करके स्थानीय मशीन का होस्टनाम और IP एड्रेस प्राप्त किया जा सकता है।
चरण
Dns.GetHostName()से होस्टनाम प्राप्त करें।Dns.GetHostEntry(hostName)सेIPHostEntryप्राप्त करें।AddressListप्रॉपर्टी से IP एड्रेस की सरणी प्राप्त करें।
उदाहरण
using System;
using System.Net;
class Program {
static void Main() {
String hostName = string.Empty;
hostName = Dns.GetHostName();
Console.WriteLine("Hostname: " + hostName);
IPHostEntry myIP = Dns.GetHostEntry(hostName);
IPAddress[] address = myIP.AddressList;
for (int i = 0; i < address.Length; i++) {
Console.WriteLine("IP Address {0}: {1}", i, address[i].ToString());
}
Console.ReadLine();
}
}
नमूना आउटपुट
Hostname: DESKTOP-ABC123 IP Address 0: 192.168.1.10 IP Address 1: fe80::1234:5678:9abc:def0 IP Address 2: 127.0.0.1 IP Address 3: ::1
महत्वपूर्ण नोट्स
- यह स्थानीय मशीन का IP देता है, क्लाइंट का नहीं (वेब एप्लिकेशन में)।
AddressListमें IPv4 और IPv6 दोनों एड्रेस शामिल हो सकते हैं।- लूपबैक एड्रेस (127.0.0.1, ::1) हमेशा मौजूद होते हैं।
- एकाधिक नेटवर्क एडाप्टर्स के मामले में एकाधिक IP हो सकते हैं।
वेब एप्लिकेशन में क्लाइंट IP प्राप्त करना (ASP.NET Core)
// कंट्रोलर में
var clientIp = HttpContext.Connection.RemoteIpAddress?.ToString();
// प्रॉक्सी/लोड बैलेंसर के पीछे
var clientIp = HttpContext.Request.Headers["X-Forwarded-For"].FirstOrDefault()
?? HttpContext.Connection.RemoteIpAddress?.ToString();
केवल IPv4 एड्रेस फिल्टर करना
var ipv4Addresses = address
.Where(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
.Select(ip => ip.ToString());