Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีแสดง IP Address ของเครื่องใน C#

ใช้ Dns.GetHostEntry() และ IPHostEntry.AddressList Property

โค้ดตัวอย่าง

using System;
using System.Net;

class Program
{
    static void Main()
    {
        string hostName = Dns.GetHostName();
        Console.WriteLine("Hostname: " + hostName);
        
        IPHostEntry hostEntry = Dns.GetHostEntry(hostName);
        IPAddress[] addresses = hostEntry.AddressList;
        
        Console.WriteLine("IP Addresses:");
        for (int i = 0; i < addresses.Length; i++)
        {
            Console.WriteLine($"  [{i}] {addresses[i]} ({addresses[i].AddressFamily})");
        }
        
        Console.ReadLine();
    }
}

ผลลัพธ์ตัวอย่าง

Hostname: MY-PC
IP Addresses:
  [0] ::1 (InterNetworkV6)      // IPv6 Loopback
  [1] 192.168.1.100 (InterNetwork) // IPv4
  [2] fe80::... (InterNetworkV6)   // IPv6 Link-local

กรองเฉพาะ IPv4

var ipv4Addresses = addresses
    .Where(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);

foreach (var ip in ipv4Addresses)
    Console.WriteLine("IPv4: " + ip);

หมายเหตุ

  • อาจได้หลาย IP (Loopback, IPv4, IPv6, Virtual Adapters)
  • ต้อง Import System.Net และ System.Net.Sockets
  • ใน .NET Core/5+ อาจต้อง Handle Exception สำหรับ DNS Lookup